php - 使用SimpleXML使用 namespace 解析XML

标签 php xml namespaces simplexml

我有这个作为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节点并显示例如所有event:SessionKey?

这不起作用:
$xml = new SimpleXMLElement($r);
$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');

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

最佳答案

它确实可以在没有registerXPathNamespace和xpath查询中的完整 namespace 前缀的情况下工作:

$xml = new SimpleXMLElement($r);

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

关于php - 使用SimpleXML使用 namespace 解析XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339062/

相关文章:

php - 为什么 PHP 的 urlencode 使用不同的 URL 编码?

php - 按建议调整图像大小,直到满足所需的文件大小

php - 使用 PHP/PDO 从 MySQL 表返回数据

c# - IOrderedEnumerable<XElement> 返回 NullReferenceException

php - Laravel 涉及命名空间

c++ - SWIG c++ python 构造函数类型错误(可能是命名空间问题)

php - 在 Travis 上使用 php-imagick 阅读 pdf 文件

javascript - 解析 XML 中的标签

java - 有效的 XML 和 DTD 未验证

php spl_autoload 不适用于语法错误的命名空间