DOM XML en PHP
- Página anterior Parser Expat de XML
- Página siguiente SimpleXML de XML
El analizador DOM integrado permite procesar documentos XML en PHP.
¿Qué es DOM?
El W3C DOM proporciona un conjunto estándar de objetos para documentos HTML y XML, así como interfaces estándar para acceder y operar con estos documentos.
El W3C DOM se divide en diferentes partes (Core, XML y HTML) y diferentes niveles (DOM Level 1/2/3):
- Core DOM - Define un conjunto estándar de objetos para cualquier documento estructurado
- XML DOM - Define un conjunto estándar de objetos para documentos XML
- HTML DOM - Define un conjunto estándar de objetos para documentos HTML
Si desea aprender más sobre XML DOM, visite nuestra Tutoriales de XML DOM.
Análisis XML
Para leer y actualizar - crear y procesar - un documento XML, necesita un analizador XML.
Hay dos tipos básicos de analizadores XML:
- Analizador basado en árboles:Este analizador convierte el documento XML en una estructura en forma de árbol. Analiza todo el documento y proporciona una API para acceder a los elementos del árbol, como el modelo de objetos DOM.
- Analizador basado en eventos:Ve el documento XML como una serie de eventos. Cuando ocurre un evento específico, el analizador llama a una función para manejarlo.
El analizador DOM es un analizador basado en árboles.
Vea el siguiente fragmento de documento XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
El DOM XML ve el XML como una estructura en forma de árbol:
- Nivel 1: Documento XML
- Nivel 2: Elemento raíz: <from>
- Nivel 3: Elemento de texto: "John"
Instalación
Las funciones del analizador DOM XML son parte integral del núcleo de PHP. No es necesario instalarlas para usar estas funciones.
Archivo XML
En nuestro ejemplo se utilizará el siguiente archivo XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Recordatorio</heading> <body>¡No olvide la reunión!</body> </note>
Carga y salida de XML
Necesitamos inicializar el analizador XML, cargar XML y salida de él:
Ejemplo
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
La salida del código anterior es:
George John Recordatorio ¡No olvide la reunión!
Si visualiza el código fuente en la ventana del navegador, verá lo siguiente:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Recordatorio</heading> <body>¡No olvide la reunión!</body> </note>
El ejemplo anterior crea un objeto DOMDocument y carga el XML de "note.xml" en este objeto de documento.
La función saveXML() coloca el documento XML interno en una cadena, de modo que podemos escribirla.
Recorrer XML
Inicializamos el analizador XML, cargamos XML y recorremos todos los elementos <note> de todos los elementos:
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 es:
#text = to = George #text = from = John #text = heading = Recordatorio #text = body = ¡No olvide la reunión! #text =
En el ejemplo anterior, puede ver que hay nodos de texto vacíos entre cada elemento.
Cuando se genera XML, generalmente contiene espacios en blanco entre los nodos. El analizador XML DOM los trata como elementos normales, y si no presta atención a ellos, a veces pueden causar problemas.
Si desea aprender más sobre XML DOM, visite nuestra Tutoriales de XML DOM.
- Página anterior Parser Expat de XML
- Página siguiente SimpleXML de XML