Php simplexml对象上的xpath不返回任何内容

Php simplexml对象上的xpath不返回任何内容,php,xml,xpath,simplexml,Php,Xml,Xpath,Simplexml,我有以下XML结构: <?xml version="1.0" encoding="utf-8"?> <q:quakeml xmlns="http://quakeml.org/xmlns/bed/1.2" xmlns:q="http://quakeml.org/xmlns/quakeml/1.2" xmlns:catalog="http://anss.org/xmlns/catalog/0.1"> <eventParameters publicID="stat

我有以下XML结构:

<?xml version="1.0" encoding="utf-8"?>
<q:quakeml xmlns="http://quakeml.org/xmlns/bed/1.2" xmlns:q="http://quakeml.org/xmlns/quakeml/1.2" xmlns:catalog="http://anss.org/xmlns/catalog/0.1">
    <eventParameters publicID="static">
        <event catalog:eventsource="rt">
        </event>
        <event catalog:eventsource="rt">
        </event>
        <event catalog:eventsource="rt">
        </event>
    </eventParameters>
</q:quakeml>

显然这不起作用,但我做错了什么。如何从此结构中获取所有事件对象?

因为您的文档有一个默认名称空间(
xmlns=”http://quakeml.org/xmlns/bed/1.2“
)您需要注册它,并对没有特定命名空间前缀的所有元素使用前缀

$se->registerXPathNamespace('d', 'http://quakeml.org/xmlns/bed/1.2');
$events = $se->xpath('//d:event');
我倾向于使用
d
——但只要在XPath中使用相同的东西,就可以使用任何东西

$se->registerXPathNamespace('d', 'http://quakeml.org/xmlns/bed/1.2');
$events = $se->xpath('//d:event');