• PHP Video Tutorials

PHP - SimpleXMLElement::addChild() Function



Definition and Usage

XML is a mark-up language to share the data across the web, XML is for both human read-able and machine read-able. The SimpleXMLElement class represents an XML document in PHP.

The SimpleXMLElement::addChild() function accepts string values representing the key and value of an XML element and adds it as a child to the XML node.

Syntax

SimpleXMLElement::addChild($name [$value, $namespace ]);

Parameters

Sr.No Parameter & Description
1

name (Mandatory)

This is a string value representing the name of the child element to be added.

2

value(Optional)

This is a string representing the value of the child element to be added.

3

namespace(Optional)

This is a string value representing the namespace to which the child element belongs.

Return Values

This function returns an object of the SimpleXMLElement class containing the added child.

PHP Version

This function was first introduced in PHP Version 5 and works in all the later versions.

Example

Following example demonstrates the usage of the SimpleXMLIterator::addChild() function.

<html>
   <head>
      <body>
         <?php
            $str="<?xml version='1.0' standalone='yes'?>
            <Tutorial>
               <Name>JavaFX</Name>
               <Pages>535</Pages>
               <Author>Krishna</Author>
               <Version>11</Version>
            </Tutorial>";
            $xml = new SimpleXMLElement($str);
            //Adding the child node
            $tut = $xml->addChild('Tutorial');
            $tut->addChild('Price', '600');
            $xml->asXML("output.xml");
            print_r($xml); 
         ?>      
      </body>
   </head>   
</html>

This will produce following result −

SimpleXMLElement Object ( 
   [Name] => JavaFX [Pages] => 535 
   [Author] => Krishna [Version] => 11 
   [Tutorial] => SimpleXMLElement Object ( [Price] => 600 ) 
)

Example

Following is an example of this function with optional parameter name space −

<html>
   <head>
      <body>
         <?php
            $str = "<?xml version='1.0' standalone='yes'?>
            <Tutorial>
               <Name>JavaFX</Name>
               <Pages>535</Pages>
               <Author>Krishna</Author>
               <Version>12</Version>
            </Tutorial>";
            $xml = new SimpleXMLElement($str);
            
            //Adding the child node
            $tut = $xml->addChild('Tutorial');
            $tut->addChild('Price', '600', 'mynamespace');
            $xml->asXML("output.xml");
            print_r($xml); 		 
         ?>      
      </body>
   </head>   
</html> 

This will produce the following output −

SimpleXMLElement Object ( 
   [Name] => JavaFX [Pages] => 535 
   [Author] => Krishna [Version] => 12 
)

Example

In the following example we are trying to add a new record to an XML file −

Data.xml:

<?xml version="1.0" encoding="utf-8"?>
<Tutorials>
   <Tutorial>
      <Name>JavaFX</Name>
      <Pages>535</Pages>
      <Author>Krishna</Author>
      <Version>11</Version>
   </Tutorial>
   <Tutorial>
      <Name>CoffeeScript</Name>
      <Pages>235</Pages>
      <Author>Kasyap</Author>
      <Version>2.5.1</Version>
   </Tutorial>
</Tutorials> 

Sample.xml

<html>
   <head>      
      <body>         
         <?php
            $doc = new DOMDocument;
            $xml = simplexml_load_file("Data.xml");
			   
            //file to SimpleXMLElement 
            $simpleXmlElement = simplexml_import_dom($xml);

            //Adding the child node
            $child = $xml->addChild('Tutorial');
            $child->addChild('Name', 'OpenCV');
            $child->addChild('Pages', '230');
            $child->addChild('Author', 'Maruthi');
            $child->addChild('Version', '5.5');
            $xml->asXML("output.xml");

            print("<br><br>");
            foreach($xml->children() as $tut) {
               print($tut->Name ."<br>");
               print($tut->Pages ."<br>");
               print($tut->Author ."<br>");
               print($tut->Version ."<br>");
               print("<br>");
            }
         ?>
      </body>
   </head>
</html>

This will produce following result −

JavaFX
535
Krishna
11

CoffeeScript
235
Kasyap
2.5.1

OpenCV
230
Maruthi
5.5
php_function_reference.htm
Advertisements