PHP XPath按属性获取节点

时间:2015-09-14 14:56:55

标签: php xpath attributes

我有一个bookCatalog.xml文件,如下所示

<bookCatalog>
    <book id='1'>
        <title>html</title>
    </book>
    <book id='2'>
        <title>java</title>
    </book>
    <book id='3'>
        <title>php</title>
    </book>
</bookCatalog>

我想通过使用book节点的变量 $ id 以编程方式获取图书节点的标题值,并且我使用了以下内容代码:

    $doc=new DOMDocument();
    $doc->load('bookCatalog.xml');
    $xpath= new DOMXPath($doc);       
    $findBookNode=$xpath->query("//book[@id='$id']")->item(0);

     foreach ($findBookNode as $child) {
            if ($child->nodeName === 'title') {
                $bookTitle = $child->nodeValue;                   
            }
        }

但结果却不是我想要的结果。

如果我将变量 $ id 替换为&#39; 1&#39; ,我可以获得标题值 id = 1 ;

的图书节点
 $findBookNode=$xpath->query("//book[@id='1']")->item(0);

1 个答案:

答案 0 :(得分:0)

我刚在代码中发现了问题:

问题是变量$ id是由$ _POST ['id']从另一个代码段中的表单分配的。

$id=$_POST['id'];

然后,变量$ id的值具有尾随空格,例如 的$ id = '1' 成为 $ id ='1'// 1号后的一个空格