Skip to content
Related Articles

Related Articles

PHP | SimpleXMLElement attributes() Function
  • Last Updated : 28 Jun, 2019

Pre-requisite: Read XML Basics

The SimpleXMLElement::attributes() function is an inbuilt function in PHP which is used to retrieve the attributes and its value from an XML tag in a SimpleXML object.

Syntax:

SimpleXMLElement SimpleXMLElement::attributes( $namespace, $is_prefix )

Parameter: This function accepts two parameters as mentioned above and described below:

  • $namespace: It is optional parameter. It specifies the namespace for retrieved Attribute.
  • $is_prefix: It is boolean parameter. It is True if $namespace is a prefix and False if $namespace is URI. Its default value is False.

Return Value: It returns a SimpleXMLElement object which can be iterated over attributes of a tag of the SimpleXMLElement object. It returns null if the SimpleXMLElement Object is already an attribute not a tag.



Note: This function is available on PHP 5.0.1 and newer version.

Below programs illustrate the SimpleXMLElement::attributes() function in PHP:

Program 1:




<?php
  
// Loading XML document to $user
$user = <<<XML
<user>
    <username>
        Geeks123
    </username>
      
    <name>
        GeeksforGeeks
    </name>
      
    <phone>
        +91-XXXXXXXXXX
    </phone>
      
    <address font-color="blue" font="awsome-fonts" 
            font-size="24px"
        Noida, UP, India 
    </address>
</user>
XML;
  
// Loading string as simple xml object
$xml = simplexml_load_string($user);
  
// Print children attribute with its value
foreach($xml->address[0]->attributes() as $key => $value)
{
    echo $key . " => " . $value . "</br>";
}
  
?>

Output:

font-color => blue
font => awsome-fonts
font-size => 24px

Program 2:




<?php
  
// Loading XML document to $user
$user = <<<XML
<user>
    <username font-color="green" 
            font="awsome-fonts" font-size="72px">
        Geeks123
    </username>
      
    <name font-color="blue" font="awsome-fonts"
            font-size="36px">
        GeeksforGeeks
    </name>
      
    <phone font-color="blue" type="number" 
            font="awsome-fonts" font-size="24px">
        +91-XXXXXXXXXX
    </phone>
      
    <address font-color="blue" font="awsome-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 => awsome-fonts
     parameter: font-size => 72px
Child name: name => GeeksforGeeks 
     parameter: font-color => blue
     parameter: font => awsome-fonts
     parameter: font-size => 36px
Child name: phone => +91-XXXXXXXXXX 
     parameter: font-color => blue
     parameter: type => number
     parameter: font => awsome-fonts
     parameter: font-size => 24px
Child name: address => Noida, UP, India 
     parameter: font-color => blue
     parameter: font => awsome-fonts
     parameter: font-size => 24px

Reference: https://www.php.net/manual/en/simplexmlelement.attributes.php

My Personal Notes arrow_drop_up
Recommended Articles
Page :