7

2つのDOMNodeListがあります

$textNodes = $xpath->query('//text()');

$titleNodes = $xpath->query('//@title');

foreachそれらをDOMNodeListsにマージして、ループで使用できるようにするにはどうすればよいですか?

4

1 に答える 1

9

XPathは、|2つのノードセットを組み合わせるための演算子をサポートしています。

$textNodes = $xpath->query('//text() | //@title');

この簡単な例を想像してみてください:

$xml = '<?xml version="1.0"?>
<person>
  <name>joe</name>
  <age>99</age>
</person>';

$doc = new DOMDocument();
$doc->loadXml($xml);
$selector = new DOMXPath($doc);

$nodes = $selector->query('//name | //age');

foreach($nodes as $node) {
    echo $node->nodeName, PHP_EOL;
}
于 2013-01-04T22:49:16.823 に答える