Los últimos tutoriales de desarrollo web
 

PHP Analizador XML DOM


El analizador DOM incorporado hace que sea posible procesar documentos XML en PHP.


El analizador XML DOM

El analizador DOM es un analizador basado en árbol.

Mira la siguiente fracción documento XML:

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

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

  • Nivel 1: El documento XML
  • Elemento raíz:: Nivel 2 <from>
  • Nivel 3: Elemento de texto: "Jani"

Instalación

Las funciones DOM analizador son parte del núcleo de PHP. No se necesita ninguna instalación para usar estas funciones.


Un archivo XML

El archivo XML siguiente será utilizado 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>

Cargar y salida XML

Queremos inicializar el analizador XML, cargar el XML, y la salida es:

Ejemplo

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

print $xmlDoc->saveXML();
?>

La salida del código anterior será:

Tove Jani Reminder Don't forget me this weekend!

Si selecciona "View source" en la ventana del navegador, verá el código HTML siguiente:

<?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 objeto DOMDocument-y carga el XML desde "note.xml" en ella.

A continuación, el saveXML() la función pone el documento XML interno en una cadena, por lo que puede dar salida a la misma.


Bucle a través de XML

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

Ejemplo

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

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

La salida 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, puede ver que hay nodos de texto vacíos entre cada elemento.

Cuando XML genera, que a menudo contiene espacios en blanco entre los nodos. El analizador DOM XML trata estos elementos ordinarios, y si usted no es consciente de ellos, que a veces causa problemas.


Si desea obtener más información sobre el XML DOM, visite nuestro tutorial XML .