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