PHP | SimpleXMLElement getNamespaces() Function
Last Updated :
03 Jul, 2019
Pre-requisite: Read XML basics
The SimpleXMLElement::getNamespaces() function is an inbuilt function in PHP which is used to retrieve the namespaces declared in XML document.
Syntax:
array SimpleXMLElement::getNamespaces( $recursive )
Parameter: This function accepts single parameter $recursive which is optional. Its default value is FALSE. If True is passed then it returns namespaces in the parent as well as child node recursively. If set False then it only returns the namespaces of the parent node.
Return Value: This function returns an array of namespace names with their associated URIs.
Note: This function is available for PHP 5.1.2 and newer version.
Below programs illustrate the SimpleXMLElement::getNamespaces() function in PHP:
Program 1:
<?php
$user = <<<XML
<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;
$xml = simplexml_load_string( $user );
$result = $xml ->getNamespaces(1);
print_r( $result );
?>
|
Output:
Array
(
[user_id] => http://geeksforgeeks.org/user
)
Program 2:
<?php
$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;
$xml = simplexml_load_string( $user );
$result = $xml ->getNamespaces(TRUE);
print_r( $result );
?>
|
Output:
Array
(
[user_id] => http://geeksforgeeks.org/user
[name] => http://geeksforgeeks.org/user/name
)
Reference: https://www.php.net/manual/en/simplexmlelement.getnamespaces.php
Share your thoughts in the comments
Please Login to comment...