dragonmeng2002 2014-01-21 02:01
浏览 50
已采纳

PHP SimpleXML XPath查询

I have a function which is trying to get text from XML using XPath query.The function reads:

function getInterviewText($id)  {
    $sxe = simplexml_load_file("./interview2.xml");
    foreach($sxe->xpath('//interview') as $item) {
        $row = simplexml_load_string($item->asXML());
        $v = $row->xpath('//interview-id[.="$id"]');
        if($v[0]) {
            echo '<interview-text>'.$item->INTERVIEW-TEXT.'</interview-text>' 
        }
    }
}

The XML File reads:

<?xml version="1.0"?>
<ROOT>
    <interview>
        <interview-id>1</interview-id>
        <INTERVIEW-TEXT>                                
            Test1
        </INTERVIEW-TEXT>
    </interview>
    <interview>
        <interview-id>2</interview-id>
        <INTERVIEW-TEXT>                              
            Test2          
        </INTERVIEW-TEXT>
    </interview>
</ROOT>

However, the function is not returning anything, when I am trying to call it with id=1 or 2. Any help is greatly appreciated.

Thanks

  • 写回答

1条回答 默认 最新

  • dsj83686 2014-01-21 02:07
    关注

    The problem is here:

    $v = $row->xpath('//interview-id[.="$id"]');
    

    $id is not being expanded because you are within a single-quoted string. Try one of the following instead:

    $v = $row->xpath('//interview-id[.="' . $id . '"]');
    // Or
    $v = $row->xpath("//interview-id[.=\"{$id}\"]");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?