簡體   English   中英

PHP XPath通過屬性獲取節點

[英]PHP XPath get Node by Attribute

我有一個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>

我想通過使用書節點的變量$ 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 替換'1' ,則可以獲得id = 1的book節點的書名值

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

我剛剛在代碼中發現了問題:

問題是變量$ id由$ _POST ['id']從另一個代碼段中的表單分配。

$id=$_POST['id'];

然后變量$ id的值具有尾隨空格 ,例如$ id ='1'變為$ id ='1'// // 數字1之后有一個空格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM