【问题标题】:What is the best way to find a specified element using PHP's SimpleXMLElement class?使用 PHP 的 SimpleXMLElement 类查找指定元素的最佳方法是什么?
【发布时间】:2012-05-09 21:30:38
【问题描述】:

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

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

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

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

【问题讨论】:

  • xpath,猜猜有人很快会写一个更深入的答案/示例(tm)。

标签: php python xml get


【解决方案1】:

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

以下示例使用 xml 目录查看多个级别,并检查描述节点是否包含 $txtSearch 中保存的任何内容

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

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

【讨论】:

  • 啊,是的!现在为什么我以前找不到呢?这正是我所需要的。非常感谢你。 +++
  • 没问题,我刚在大学学过这个,以前也没听说过。
  • 如果对你最有帮助,你也可以接受这个答案:)
  • 接受 我本来打算早点接受它,但它让我等到帖子活跃了一定分钟数。顺便说一句,xpath 函数起作用了。再次感谢。 :)
【解决方案2】:

您可以运行 XPath 查询:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多