Relative DOMNode xpath query in PHP

I use something like //*[@attr] to search for nodes with a given attribute. If i give a reference node to $xpath->query, it does a non-relative search.

Solution

Remove the // to search for children of the context node.

$xpath->query('*[@attr]', $parentNode);

Get all child nodes

But then that doesn't get all descendants... So something like:

$xpath->query('descendant::*[@attr]', $parentNode);

where you would change the *[@attr] portion to match whatever you're looking for.