2011-11-22 171 views
1

我收到此錯誤,XPath的錯誤 - 無效的表達

Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: Invalid expression

在互聯網上搜索但無法刪除此錯誤。這是即時通訊發佈一次。

這裏是我的PHP代碼:

<?php 
      $file = $_POST['id']; 
      $xml = simplexml_load_file('test.xml'); 

      $user = $xml->xpath("user[user_id == $id]");    
      $name = $user->name; 
      $file = $user->file; 
      echo 'Name' . $name; 
      echo 'File Name' . $file; 
?> 
     <form action='<?php echo $_SERVER['PHP_SELF']?>' method="POST"> 
      Login ID: <input type="text" name="id" /> 
      <input type="submit" name="submit" value="Submit"/>    
     </form> 

而我的test.xml文件是:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<document> 
    <user> 
     <user_id>0121</user_id> 
     <name>Tim</name> 
     <file>0121.file</file> 
    </user> 
    <user> 
     <user_id>0178</user_id> 
     <name>Henry</name> 
     <file>0178.file</file> 
    </user> 
    <user> 
     <user_id>0786</user_id> 
     <name>Martin</name> 
     <file>0786.file</file> 
    </user> 
    <user> 
     <user_id>1239</user_id> 
     <name>Jan</name> 
     <file>1239.file</file> 
    </user> 
</document> 

的原因嗎?

由於 Raaks

+0

答案已經發布在下面,但請記住,這是非常困難的谷歌語法問題。你應該直接去規範,在那裏你很容易找到你的答案:http://www.w3.org/TR/xpath/ –

回答

2

==是無效的表達式。試試這個:

$user = $xml->xpath("user[user_id=$id]"); 
+0

謝謝gustav我解決了它! – 125369

0

嘗試這個XPath(的=代替==):

user[user_id = $id] 
相關問題