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

如何使用 SimpleXML 的 XPath 解析带有命名空间的 XML?

DDD
DDD原创
2024-12-18 16:12:10661浏览

How to Parse XML with Namespaces Using SimpleXML's XPath?

使用 SimpleXML 通过命名空间解析 XML

XML 命名空间通常用于定义 XML 文档中的不同部分。要使用 SimpleXML 解析带有命名空间的 XML,请考虑以下方法:

带有命名空间的 XML 文档:

给定一个带有命名空间的 XML 文档:

<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
    <event:event>
        <event:sessionKey></event:sessionKey>
        <event:sessionName>Learn QB in Minutes</event:sessionName>
        <event:sessionType>9</event:sessionType>
        <event:hostWebExID></event:hostWebExID>
        <event:startDate>02/12/2009</event:startDate>
        <event:endDate>02/12/2009</event:endDate>
        <event:timeZoneID>11</event:timeZoneID>
        <event:duration>30</event:duration>
        <event:description></event:description>
        <event:status>NOT_INPROGRESS</event:status>
        <event:panelists></event:panelists>
        <event:listStatus>PUBLIC</event:listStatus>
    </event:event>
    ...
</root>

简化解析方法:

要循环访问 event:event 节点而不注册命名空间,您可以在 XPath 查询中使用完整的命名空间前缀:

$xml = new SimpleXMLElement($xmlString);

foreach ($xml->xpath('//event:event') as $event) {
    var_export($event->xpath('event:sessionKey'));
}

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn