使用PHP搜索XML节点值


Search XML node values with PHP

我需要用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来显示这个

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

查看这个:http://php.net/manual/en/simplexmlelement.xpath.php