Open In App

PHP | SimpleXMLElement XPath() Function

Last Updated : 03 Jul, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
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
<?php

// Loading XML document to $user
$user = <<<XML
<user>
    <id>12345</id>
    <username>Geeks123</username>
    <name>GeeksforGeeks</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);
 
?>
Output:
Array
(
    [0] => SimpleXMLElement Object
        (
            [0] => Geeks123
        )

)
Example 2: php
<?php

// Loading XML document to $user
$user = <<<XML
<user xmlns:user_id="http://geeksforgeeks.org/user">
<single_user id="1">
    <user_id:id>12345</user_id:id>
    <username>Geeks123</username>
    <name>GeeksforGeeks</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
$xml->registerXPathNamespace('u', 'http://geeksforgeeks.org/user');

// Retrieving xpaths
$result = $xml->xpath('//u:id');

// Printing output
foreach ($result as $id) {
    echo $id . "<br>";
}

?>
Output:
12345
15980
Example 3: php
<?php

// Loading XML document to $user
$user = <<<XML
<user xmlns:user_id="http://geeksforgeeks.org/user">
    <single_user id="1" xmlns:name="http://geeksforgeeks.org/user/name">
        <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>
    
    <single_user id="2" xmlns:name="http://geeksforgeeks.org/user/name">
        <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>
    
    <single_user id="3" xmlns:name="http://geeksforgeeks.org/user/name">
        <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
$xml->registerXPathNamespace('u', 'http://geeksforgeeks.org/user');
$xml->registerXPathNamespace('un', 'http://geeksforgeeks.org/user/name');

// 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>";
}

?>
Output:
12345
57833
98944
Rakesh
Manjeet
Ak
Kumar
Singh
Singh
Reference: https://www.php.net/manual/en/simplexmlelement.xpath.php

Next Article

Similar Reads