使用 PHP 的 SimpleXMLElement 类查找指定元素的最佳方法是什么?


What is the best way to find a specified element using PHP's SimpleXMLElement class?

我目前正在从事的项目涉及将一个用Python编写的网站翻译成PHP代码。我现在正在做的部分要求我向 Web 服务器发送 _GET 美元的请求。我得到的响应始终是XML格式,所以我使用*simplexml_load_file((*函数来获取结果。

我需要解析 Web 服务器发回给我的 XML。Python 有一个名为 BeautifulStoneSoup 的漂亮库,它有一个 find(( 方法,可以返回指定属性的内容。

在 http://php.net/manual/en/book.simplexml.php 查看了 PHP 函数列表后,我似乎找不到任何允许我指定属性名称并获取内容的内容。请记住,我可能要查找的属性不一定总是深入 XML 数组的一个级别。它可能在数组中具有多个维度。

如果这还不够具体,我可以提供一个例子。谢谢你的帮助,朋友们!

Xpath听起来像你要找的东西。它允许在 XML 目录的任何级别进行搜索。

以下示例使用 xml 目录深入查看多个级别,并检查描述节点是否包含$txtSearch

$holidayDoc = simplexml_load_file($url);    
$qry = "//channel/item[description[contains(text(),'"$txtSearch'")]]";
$holidayDoc->xpath($qry);

然后可以使用 foreach 循环迭代结果

您可以运行 XPath 查询:

$xml->xpath('//@myattribute')