Analizador PHP XML DOM
El analizador DOM incorporado hace posible procesar documentos XML en PHP.
El analizador XML DOM
El analizador DOM es un analizador basado en árboles.
Mire la siguiente fracción de 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: Documento XML
- Nivel 2: elemento raíz: <de>
- Nivel 3: Elemento de texto: "Jani"
Instalación
Las funciones del analizador DOM son parte del núcleo de PHP. No se necesita instalación para usar estas funciones.
El archivo XML
El archivo XML a continuación ("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>
XML de carga y salida
Queremos inicializar el analizador XML, cargar el xml y generarlo:
<?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 "Ver código fuente" en la ventana del navegador, verá el siguiente código 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.
Luego, la función saveXML() coloca el documento XML interno en una cadena, para que podamos generarlo.
Bucle a través de XML
Queremos inicializar el analizador XML, cargar el XML y recorrer todos los elementos del elemento <note>:
<?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, ve que hay nodos de texto vacíos entre cada elemento.
Cuando se genera XML, a menudo contiene espacios en blanco entre los nodos. El analizador XML DOM los trata como elementos ordinarios y, si no los conoce, a veces causan problemas.
Si desea obtener más información sobre XML DOM, visite nuestro tutorial de XML .