使用PHP搜索XML节点值

时间:2015-05-27 09:47:54

标签: php jquery ajax xml

我需要用PHP搜索XML节点值。这是我的XML数据。

 <catalog> 
 <book id="bk100">
      <author>Gambardella, Matthew</author>
      <title>XML Developers Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications
      with XML.</description>
   </book>  
   <book id="bk101">
      <author>author, kumar</author>
      <title>PHP Developers Guide</title>
      <genre>Computer</genre>
      <price>50.25</price>
      <publish_date>2015-10-01</publish_date>
      <description>PHP Applications</description>
   </book> 
   </catalog>

我使用下面的PHP代码来获取网页中的值。

<?php
    // Loading the XML file
    $xml = simplexml_load_file("data.xml");
    echo "<h2>".$xml->getName()."</h2><br />";

    foreach($xml->children() as $book)
    {
        echo "BOOK : ".$book->attributes()->id."<br />";
        echo "Author : ".$book->author." <br />";
        echo "Title : ".$book->title." <br />";
        echo "Genre : ".$book->genre." <br />";
        echo "Price : ".$book->price." <br />";
        echo "Publish Date : ".$book->publish_date." <br />";
        echo "Description : ".$book->description." <br />";
        echo "<hr/>";
    }
?>

它将以XML格式返回完整的数据列表。我需要在XML中搜索特定单词,并且只需要显示该特定节点。对于前者如果我正在搜索关键字PHP。它将仅返回第二个节点。我还需要在publish_date之类的特定属性中进行搜索,并且我还需要通过DESC或ASC按特定字段对XML数据进行排序。

我有超过100万条XML格式的记录,所以有过滤和显示数据的依赖关系。而且我需要表明是否有可能使用jquery和Ajax来显示它。

1 个答案:

答案 0 :(得分:1)

我建议您使用XPath进行一些查询。

检查出来:http://php.net/manual/en/simplexmlelement.xpath.php