【发布时间】:2018-05-23 17:24:47
【问题描述】:
我正在尝试了解 PHP 中 DOMXPath 的基础知识。我有一个以以下内容开头的 XML 文件。
<?xml version="1.0"?>
<ListFinancialEventsResponse xmlns="http://mws.amazonservices.com/Finances/2015-05-01">
<ListFinancialEventsResult>
<FinancialEvents>
<ShipmentEventList>
<ShipmentEvent>
我正在尝试使用下面的 PHP 获取 FinancialEvents 标签,并尝试了一些不同的 xpath 查询尝试,但都不起作用。
$file = file_get_contents('file.xml');
$dom = new DOMDocument();
$dom->loadXML($file);
$xpath = new DOMXPath($dom);
$xpath->registerNamespace('m','http://mws.amazonservices.com/Finances/2015-05-01');
$events = $xpath->query('FinancialEvents'); // Attempt 1
$events = $xpath->query('m:FinancialEvents');// Attempt 2
根据文档,这些应返回名称为“FinancialEvents”的所有节点。我知道如果我使用下面的 xpath 查询它会起作用
$events = $xpath->query('//m:FinancialEvents');
所以我的问题是,为什么我的前 2 个查询不起作用?元素
谢谢
【问题讨论】:
标签: php xml xpath xml-parsing domxpath