72-El Parser XML DOM en php

El analizador DOM integrado permite procesar documentos XML en PHP.

El Parser XML DOM

El analizador DOM es un analizador a base de árboles. Mira la siguiente fracción de documento XML:


<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
                

El DOM ve el XML arriba como una estructura de árbol:

  • Nivel 1: Documento XML
  • Nivel 2: Espectro raíz: "from"
  • Nivel 3: elemento Texto: "Jani"

Las funciones DOM parser son parte del núcleo PHP. No se necesita instalación para utilizar estas funciones.

El archivo XML de abajo ("note.xml") se utilizará en nuestro ejemplo:


<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>
            

Este archivo XML representa una nota simple. Contiene elementos como "to", "from", "heading" y "body", cada uno con su respectivo contenido. Este tipo de estructura es común en archivos XML, donde los datos se organizan en una jerarquía de elementos.

El archivo comienza con la declaración XML <?xml version="1.0" encoding="UTF-8"?>, que especifica la versión de XML y la codificación de caracteres utilizada. Luego, el elemento raíz "note" contiene los demás elementos.

Cada elemento está delimitado por etiquetas de apertura y cierre, como <to>Tove</to>. El contenido entre las etiquetas es el valor del elemento. En este caso, "Tove" es el valor del elemento "to".

Este archivo "note.xml" será utilizado en los ejemplos siguientes para demostrar cómo el analizador XML DOM procesa y maneja los datos XML.

Queremos inicializar el analizador XML, cargar la xml y deshacerla:


<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
            

El producto del código anterior será:


Tove Jani Reminder Don't forget me this weekend!
            

Si selecciona "Observar fuente" en la ventana del navegador, verá el siguiente HTML:


<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>
            

El ejemplo anterior crea un DOMDocument-Object y carga el XML de "note.xml" en él. A continuación, la función saveXML() pone el documento XML interno en una cadena, para que podamos desexplotarlo.

Queremos inicializar el analizador XML, cargar el XML y bucle a través de todos los elementos del elemento de la nota:


<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
    print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
            

El producto del código anterior será:


#text = 
to = Tove
#text = 
from = Jani
#text = 
heading = Reminder
#text = 
body = Don't forget me this weekend!
#text = 
            

En el ejemplo anterior ves que hay nodos de texto vacíos entre cada elemento. Cuando XML genera, a menudo contiene espacios blancos entre los nodos. El XML DOM parser trata estos como elementos ordinarios, y si no estás al tanto de ellos, a veces causan problemas.

Publicar un comentario

0 Comentarios