PHP - Fonction SimpleXMLElement :: addChild ()

Définition et utilisation

XML est un langage de balisage permettant de partager les données sur le Web, XML est à la fois lisible par l'homme et par machine. La classe SimpleXMLElement représente un document XML en PHP.

le SimpleXMLElement::addChild() La fonction accepte des valeurs de chaîne représentant la clé et la valeur d'un élément XML et l'ajoute en tant qu'enfant au nœud XML.

Syntaxe

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

Paramètres

Sr. Non Paramètre et description
1

name (Mandatory)

Il s'agit d'une valeur de chaîne représentant le nom de l'élément enfant à ajouter.

2

value(Optional)

Il s'agit d'une chaîne représentant la valeur de l'élément enfant à ajouter.

3

namespace(Optional)

Il s'agit d'une valeur de chaîne représentant l'espace de noms auquel appartient l'élément enfant.

Valeurs de retour

Cette fonction renvoie un objet de la classe SimpleXMLElement contenant l'enfant ajouté.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation du SimpleXMLIterator::addChild() fonction.

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

Cela produira le résultat suivant -

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

Exemple

Voici un exemple de cette fonction avec un espace de nom de paramètre facultatif -

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

Cela produira la sortie suivante -

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

Exemple

Dans l'exemple suivant, nous essayons d'ajouter un nouvel enregistrement à un fichier 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>

Cela produira le résultat suivant -

JavaFX
535
Krishna
11

CoffeeScript
235
Kasyap
2.5.1

OpenCV
230
Maruthi
5.5