首页 > 后端开发 > php教程 > 如何使用 SimpleXML 的 XPath 正确解析命名空间 XML?

如何使用 SimpleXML 的 XPath 正确解析命名空间 XML?

Susan Sarandon
发布: 2024-12-18 10:05:10
原创
611 人浏览过

How to Correctly Parse Namespaced XML with SimpleXML's XPath?

如何使用 SimpleXML 解析具有命名空间的 XML

问题:

尝试解析时使用 SimpleXML 的带有命名空间的 XML,遇到了 registerXPathNamespace() 的问题

XML 结构:

<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
  <event:event>
    <event:sessionKey>...</event:sessionKey>
    ...
  </event:event>
  ...
</root>
登录后复制

示例 Xpath 查询:

尝试提取 'event:sessionKey'价值观使用:

$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');
$event->xpath('//e:sessionKey')
登录后复制

解决方案:

问题在于 XPath 查询中命名空间前缀('e')和完整命名空间 URI 的必要性,即使不使用 registerXPathNamespace()。

已更正代码:

$xml = new SimpleXMLElement($r);

foreach ($xml->xpath('//event:event') as $event) {
  var_export($event->xpath('event:sessionKey'));
}
登录后复制

以上是如何使用 SimpleXML 的 XPath 正确解析命名空间 XML?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板