Php simplexml对象上的xpath不返回任何内容
我有以下XML结构: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 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');