PHP - Función SimpleXMLElement :: addChild ()

Definición y uso

XML es un lenguaje de marcado para compartir los datos a través de la web, XML es legible tanto para humanos como para máquinas. La clase SimpleXMLElement representa un documento XML en PHP.

los SimpleXMLElement::addChild() La función acepta valores de cadena que representan la clave y el valor de un elemento XML y lo agrega como hijo al nodo XML.

Sintaxis

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

Parámetros

No Señor Descripción de parámetros
1

name (Mandatory)

Este es un valor de cadena que representa el nombre del elemento secundario que se agregará.

2

value(Optional)

Esta es una cadena que representa el valor del elemento secundario que se agregará.

3

namespace(Optional)

Este es un valor de cadena que representa el espacio de nombres al que pertenece el elemento secundario.

Valores devueltos

Esta función devuelve un objeto de la clase SimpleXMLElement que contiene el hijo agregado.

Versión PHP

Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.

Ejemplo

El siguiente ejemplo demuestra el uso de SimpleXMLIterator::addChild() función.

<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>

Esto producirá el siguiente resultado:

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

Ejemplo

A continuación se muestra un ejemplo de esta función con un espacio de nombre de parámetro opcional:

<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>

Esto producirá el siguiente resultado:

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

Ejemplo

En el siguiente ejemplo, intentamos agregar un nuevo registro a un archivo XML:

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>

Esto producirá el siguiente resultado:

JavaFX
535
Krishna
11

CoffeeScript
235
Kasyap
2.5.1

OpenCV
230
Maruthi
5.5