XPath supports operator | to combine two node sets:
$textNodes = $xpath->query('//text() | //@title');
Imagine this simple example:
$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; }
source share