【发布时间】: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->xpath() -
我有超过 100 万条 XML 格式的记录 - 你想对这个数组进行排序吗? simplexml 会加载这样的文件吗?