Pre-requisite: Read XML Basics
The SimpleXMLElement::xpath() function is an inbuilt function in PHP which runs XPath query on the XML document.
Syntax:
SimpleXMLElement::xpath( $path )
Parameters: This function accepts single parameter $path which is required. It is used to specify the XPath path of XML document.
Return Value: It returns an array of SimpleXMLElements on success or False on failure.
Note: This function is available on PHP 5.2.0 and newer version.
Example:
<?php   // Loading XML document to $user $user = <<<XML <user>     <id>12345</id>     <username>Geeks123</username>     <name>neveropen</name>     <phone>+91-XXXXXXXXXX</phone>     <detail font-color="blue" font-size="24px">         Noida India     </detail> </user> XML;   // Loading string as simple xml object $xml = simplexml_load_string($user);   // Retrieving xpaths $result = $xml->xpath("username");   // Printing output print_r($result);    ?> |
Array
(
[0] => SimpleXMLElement Object
(
[0] => Geeks123
)
)
Example 2:
<?php   // Loading XML document to $user $user = <<<XML <single_user id="1">     <user_id:id>12345</user_id:id>     <username>Geeks123</username>     <name>neveropen</name>     <phone>+91-XXXXXXXXXX</phone>     <detail font-color="blue" font-size="24px">         Noida India     </detail> </single_user>   <single_user id="2">     <user_id:id>15980</user_id:id>     <username>Geeks54321</username>     <name>Geeks</name>     <phone>+91-XXXXXXXXXX</phone>     <detail font-color="blue" font-size="24px">         Noida India     </detail> </single_user> </user> XML;   // Loading string as simple xml object $xml = simplexml_load_string($user);   // Registering xpath namespace   // Retrieving xpaths $result = $xml->xpath('//u:id');   // Printing output foreach ($result as $id) {     echo $id . "<br>"; }   ?> |
12345
15980
Example 3:
<?php   // Loading XML document to $user $user = <<<XML         <user_id:id>12345</user_id:id>         <username>rakesh123</username>         <name:firstname>Rakesh</name:firstname>         <name:lastname>Kumar</name:lastname>         <phone>+91-XXXXXXXXXX</phone>         <detail>Noida India</detail>     </single_user>               <user_id:id>57833</user_id:id>         <username>man123</username>         <name:firstname>Manjeet</name:firstname>         <name:lastname>Singh</name:lastname>         <phone>+91-XXXXXXXXXX</phone>         <detail>Kolkata, India</detail>     </single_user>               <user_id:id>98944</user_id:id>         <username>ak98</username>         <name:firstname>Ak</name:firstname>         <name:lastname>Singh</name:lastname>         <phone>+91-XXXXXXXXXX</phone>         <detail>Noida India</detail>     </single_user> </user> XML;   // Loading string as simple xml object $xml = simplexml_load_string($user);   // Registering xpath namespace   // Retrieving xpaths $result = $xml->xpath('//u:id'); $result_f_name = $xml->xpath('//un:firstname'); $result_l_name = $xml->xpath('//un:lastname');   // Printing output foreach ($result as $id) {     echo $id . "<br>"; }      foreach ($result_f_name as $f_name) {     echo $f_name . "<br>"; }   foreach ($result_l_name as $l_name) {     echo $l_name . "<br>"; }   ?> |
12345
57833
98944
Rakesh
Manjeet
Ak
Kumar
Singh
Singh
Reference: https://www.php.net/manual/en/simplexmlelement.xpath.php
