我正在使用PHP和xpath解析来自API调用的XML结果。
$dom = new DOMDocument();
$dom->loadXML($response->getBody());
$xpath = new DOMXPath($dom);
$xpath->registerNamespace("a", "http://www.example.com");
$hrefs = $xpath->query('//a:Books/text()', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookTitle[$i] = $hrefs->item($i)->data;
}
$hrefs = $xpath->query('//a:Books', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookDewey[$i] = $hrefs->item($i)->getAttribute('DeweyDecimal');
}
这有效,但是有一种方法可以从一个查询访问文本和属性吗?如果是的话,一旦执行查询,您如何获得这些项目?
最佳答案
环顾四周后,我遇到了这个解决方案。这样,我可以获取元素文本并访问节点的任何属性。
$hrefs = $xpath->query('//a:Books', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookTitle[$i] = $hrefs->item($i)->nodeValue;
$arrBookDewey[$i] = $hrefs->item($i)->getAttribute('DeweyDecimal');
}
关于php - 使用Xpath提取给定节点的文本和属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/141913/