El analizador DOM incorporado permite procesar documentos XML en PHP.
W3C DOM proporciona un conjunto estándar de objetos para documentos HTML y XML, así como una interfaz estándar para acceder y manipular estos documentos. W3C DOM se divide en diferentes partes (Core, XML y HTML) y diferentes niveles (DOM Nivel 1/2/3): * Core DOM - define un conjunto estándar de objetos para cualquier documento estructurado * XML DOM - para documentos XML Definición de un conjunto estándar de objetos* HTML DOM: definición de un conjunto estándar de objetos para documentos HTML Para obtener más información sobre XML DOM, visite nuestro tutorial de XML DOM.
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 árbol: este analizador convierte documentos XML en una estructura de árbol. Analiza todo el documento y proporciona acceso a elementos del árbol, como el Modelo de objetos de documento (DOM).
Analizador basado en eventos: trata un 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.
Mire el siguiente fragmento de documento XML:
<?xml versión="1.0" codificación="ISO-8859-1"?><de>Jani</de>
XML DOM trata el XML anterior como una estructura de árbol:
Nivel 1: documento XML
Nivel 2: Elemento raíz: <de>
Nivel 3: Elemento de texto: "Jani"
La función del analizador DOM XML es una parte integral del núcleo de PHP. No se requiere instalación para utilizar estas funciones.
En nuestro ejemplo se utilizará el siguiente archivo XML:
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Recordatorio</heading><body>Don ¡No me olvides este fin de semana!</body></note>
Necesitamos inicializar el analizador XML, cargar el XML y generarlo:
<?php$xmlDoc = nuevo DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
El código anterior generará:
ToveJaniRecordatorio ¡No me olvides este fin de semana!
Si ve el código fuente en una ventana del navegador, verá el siguiente HTML:
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Recordatorio</heading><body>Don ¡No me olvides este fin de semana!</body></note>
El ejemplo anterior crea un objeto DOMDocument y carga el XML en "note.xml" en este objeto de documento.
La función saveXML() coloca el documento XML interno en una cadena para que podamos generarlo.
Queremos inicializar el analizador XML, cargar el XML e iterar a través de todos los elementos del elemento <note>:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item-> nombrenodo " = " . $elemento->valornodo "<br>";
El código anterior generará:
#text = to = Tove#text = from = Jani#text = encabezado = Recordatorio#text = cuerpo = ¡No me olvides este fin de semana!#text =
En el ejemplo anterior, verá que hay nodos de texto vacíos entre cada elemento.
Cuando se genera XML, normalmente contiene espacios en blanco entre nodos. El analizador XML DOM los trata como elementos normales, lo que a veces puede causar problemas si no les presta atención.
Para obtener más información sobre XML DOM, visite nuestro tutorial de XML DOM.