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

时间:2012-05-09 21:30:39

标签: php python xml get

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

中包含的内容
$holidayDoc = simplexml_load_file($url);    
$qry = "//channel/item[description[contains(text(),\"$txtSearch\")]]";
$holidayDoc->xpath($qry);

然后可以使用foreach循环

迭代结果

答案 1 :(得分:0)

您可以运行XPath查询:

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