【问题标题】:Search XML node values with PHP使用 PHP 搜索 XML 节点值
【发布时间】:2015-05-27 09:47:53
【问题描述】:

我需要用 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 来展示这一点。

【问题讨论】:

  • 如果你想搜索也可以使用$xml-&gt;xpath()
  • 我有超过 100 万条 XML 格式的记录 - 你想对这个数组进行排序吗? simplexml 会加载这样的文件吗?

标签: php jquery ajax xml


【解决方案1】:

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

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

【讨论】:

  • 这个例子显示了 XML 数据是可变的。但我从外部文件调用 XML 数据。所以我不知道在哪里可以从外部数据更改它
  • simplexml_load_file() 将 XML 加载到您的变量中,您可以轻松使用 XPath。有很多例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多