在给定的XML结构
上<films>
<title>Jaws</title>
<year>1975</year>
<title>Spaceballs</title>
<year>1987</year>
</films>
如何输出与xpath连接的每个节点的node name
和text
?像
title: Jaws
year: 1975
title: Spaceballs
year: 1987
答案 0 :(得分:1)
使用纯XPath,您需要2.0版://*[not(*)]/concat(local-name(), ': ', .)
。如果您只有XPath 1.0,那么您需要选择已经显示的元素,然后输出名称和内容。
答案 1 :(得分:0)
这个怎么样:
$xml = <<<EOF
<films>
<title>Jaws</title>
<year>1975</year>
<title>Spaceballs</title>
<year>1987</year>
</films>
EOF;
$doc = new DOMDocument();
$doc->loadXML($xml);
$selector = new DOMXpath($doc);
foreach($selector->query('/films/*') as $child) {
echo $child->nodeName . ': ' . $child->nodeValue . PHP_EOL;
}
?输出:
title: Jaws
year: 1975
title: Spaceballs
year: 1987