Pre-requisite: Read XML Basics
The SimpleXMLElement::children() function is an inbuilt function in PHP which returns children of a given node in a SimpleXML object.
Syntax:
SimpleXMLElement SimpleXMLElement::children( $namespace, $is_prefix )
Parameter: This function accepts two parameters as mentioned above and described below:
- $namespace: It is optional parameter. It specifies the XML namespace.
- $is_prefix: It is boolean parameter which is optional. It is True if $namespace is a prefix and False if $namespace is namespace URL. Its default value is False.
Return Value: This function returns a SimpleXMLElement object.
Note: This function is available on PHP 5.0.1 and newer version.
Below programs illustrate the SimpleXMLElement::children() function in PHP:
Program 1: This program displays the value of child node.
<?php // Loading XML document to $user $user = <<<XML
<user> <username>Geeks123</username>
<name>GeeksforGeeks</name>
<phone>+91-XXXXXXXXXX</phone>
<address>
Noida, UP, India
</address>
</user> XML; // Loading string as simple xml object $xml = simplexml_load_string( $user );
// Print children node foreach ( $xml ->children() as $child ) {
echo "Child node: " . $child . "</br>" ;
} ?> |
Output:
Child node: Geeks123 Child node: GeeksforGeeks Child node: +91-XXXXXXXXXX Child node: Noida, UP, India
Program 2: This program displays the tag name and its value.
<?php // Loading XML document to $user $user = <<<XML
<user> <username>Geeks123</username>
<name>GeeksforGeeks</name>
<phone>+91-XXXXXXXXXX</phone>
<address>
Noida, UP, India
</address>
</user> XML; // Loading string as simple xml object $xml = simplexml_load_string( $user );
// Print children node foreach ( $xml ->children() as $child ) {
echo "Child node: " . $child ->getName()
. " => " . $child . "</br>" ;
} ?> |
Output:
Child node: username => Geeks123 Child node: name => GeeksforGeeks Child node: phone => +91-XXXXXXXXXX Child node: address => Noida, UP, India
Program 3: This program retrieving the children attribute name with its value.
<?php // Loading XML document to $user $user = <<<XML
<user> <username font-color= "green"
font= "awesome-fonts" font-size= "72px" >
Geeks123
</username>
<name font-color= "blue" font= "awesome-fonts"
font-size= "36px" >
GeeksforGeeks
</name>
<phone font-color= "blue" type= "number"
font= "awesome-fonts" font-size= "24px" >
+91-XXXXXXXXXX
</phone>
<address font-color= "blue" font= "awesome-fonts"
font-size= "24px" >
Noida, UP, India
</address>
</user> XML; // Loading string as simple xml object $xml = simplexml_load_string( $user );
// Print children attribute foreach ( $xml ->children() as $child ) {
echo "Child name: " . $child ->getName()
. " =>" . $child . "<br>" ;
foreach ( $child ->attributes() as $key => $value )
echo " parameter: "
. $key . " => " . $value . "</br>" ;
} ?> |
Output:
Child name: username => Geeks123 parameter: font-color => green parameter: font => awesome-fonts parameter: font-size => 72px Child name: name => GeeksforGeeks parameter: font-color => blue parameter: font => awesome-fonts parameter: font-size => 36px Child name: phone => +91-XXXXXXXXXX parameter: font-color => blue parameter: type => number parameter: font => awesome-fonts parameter: font-size => 24px Child name: address => Noida, UP, India parameter: font-color => blue parameter: font => awesome-fonts parameter: font-size => 24px
Reference: https://www.php.net/manual/en/simplexmlelement.children.php