(PHP 5, PHP 7, PHP 8)
SimpleXMLElement::xpath — Runs XPath query on XML data
The xpath method searches the SimpleXML node for
children matching the XPath expression.
expressionAn XPath path
Returns an array of SimpleXMLElement objects on success; or null or false in
case of an error.
As of PHP 8.5.0, if the XPath expression returns something other than a node set
(e.g. a boolean or number), an E_WARNING is emitted and
false is returned instead of silently returning an empty array.
| Version | Description |
|---|---|
| 8.5.0 |
If the XPath expression returns something other than a node set, an
E_WARNING is now emitted and false is returned.
Previously, an empty array was returned silently.
|
Example #1 Xpath
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);
/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');
foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}
/* Relative paths also work... */
$result = $xml->xpath('b/c');
foreach ($result as $node) {
echo 'b/c: ',$node,"\n";
}
?>The above example will output:
/a/b/c: text /a/b/c: stuff b/c: text b/c: stuff
Notice that the two results are equal.