Xpath - 连接节点名称和文本

时间:2013-10-26 10:49:56

标签: xpath

在给定的XML结构

<films>
  <title>Jaws</title>
  <year>1975</year>
  <title>Spaceballs</title>
  <year>1987</year>
</films>

如何输出与xpath连接的每个节点的node nametext?像

title: Jaws
year: 1975
title: Spaceballs
year: 1987

2 个答案:

答案 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