2015-09-14 44 views
1

得到節點我有一個bookCatalog.xml文件,如下PHP的XPath的屬性

<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;

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

空間你在哪裏給$ id參數賦值? –

回答

0

我才發現在我的代碼的問題:

的問題是,變量$ ID是由$ _ POST [「身份證」]從另一個代碼段形式分配。

$id=$_POST['id']; 

然後變量$ id的值具有尾隨空間,例如 的$ id = '1' 成爲 的$ id = '1' // 一個後數1

+0

很高興你找到它。我已經刪除了我的答案,這個答案假設你的Q中沒有可見的東西。我相信你可以在幾天內接受你自己的答案。 – Abel