Función PHP SimpleXMLElement :: addAttribute ()

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::addAttribute() La función acepta valores de cadena que representan el tipo y valor de un atributo y agrega el atributo especificado al elemento SimpleXML.

Sintaxis

SimpleXMLElement::addAttribute($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 atributo que se agregará al SimpleXMLElement (archivo XML).

2

value(Optional)

Esta es una cadena que representa el valor del atributo que se agregará al SimpleXMLElement (archivo XML).

3

namespace(Optional)

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

Valores devueltos

Esta función no devuelve ningún valor.

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::addAttribute() función.

<html>
   <head>
      <body>
         <?php
            $xmlstr="<?xml version='1.0' standalone='yes'?>
            <Tutorial>
               <Name>JavaFX</Name>
               <Pages>535</Pages>
               <Author>Krishna</Author>
               <Version>11</Version>
            </Tutorial>";
            $xml = new SimpleXMLElement($xmlstr);
            $xml->addAttribute('type', 'test');
            $tut = $xml->addChild('Tutorial');
            $tut->addChild('Price', '600');
    
            echo $xml->asXML();
            echo "<br><br>";
            print_r($xml);
         ?>      
      </body>
   </head>   
</html>

Esto producirá el siguiente resultado:

JavaFX 535 Krishna 11 600
SimpleXMLElement Object (
   [@attributes] => Array ( [type] => test ) 
   [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);
            $xml->addAttribute("m:type", "test", 'mynamespace'); 
            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 cargar el contenido de un archivo XML usando las funciones current () y next () y agregarle un atributo:

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);
            $simpleXmlElement->addAttribute('type', 'test');
            print_r($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:

SimpleXMLElement Object ( [@attributes] => 
Array ( [type] => test ) [Tutorial] => 
Array ( [0] => SimpleXMLElement Object ( [Name] => 
JavaFX [Pages] => 535 [Author] => 
Krishna [Version] => 11 ) [1] => 
SimpleXMLElement Object ( [Name] => 
CoffeeScript [Pages] => 235 [Author] => 
Kasyap [Version] => 2.5.1 ) ) )

JavaFX
535
Krishna
11

CoffeeScript
235
Kasyap
2.5.1