XML en PHP

Post date: Aug 27, 2010 4:49:02 AM

Con el paso de PHP 4 a PHP 5, se reescribió todo lo concerniente al tratamiento de archivos XML. Las extensiones de PHP 5 para XML ahora están basadas en la librería GNOME libxml2, lo que facilita la interoperabilidad entre diferentes extensiones.

Estas son las principales operaciones disponibles para el tratamiento de XML en PHP.

Soporte para Streams

Todas la extensiones para XML ahora soportan el uso de streams. En cualquier punto en donde es vaálido usar un archivo ahora es igualmente válido usar un stream.

SAX

La interfaz SAX (Simple API for XML) está basada en llamadas de retorno (callbacks). Cada vez que se alcanza una marca, un atributo o un contenido durante el reconocimiento de estructuras XML el reconocedor activa la llamada de retorno. El programador puede, según lo que se haya encontrado realizar las acciones en las que esté interesado. A partir de PHP 5 la interfaz SAX está basada en la librería libxml2.

DOM

La extensión DOM (Document Object Model) para acceder al árbol del documento XML en PHP 5 está basada en el estándar de W3C, incluyendo en lo que respecta a nombre de propiedades y métodos. Si ya ha utilizado, por ejemplo con JavaScript la interfaz DOM, le resultará familiar esta extensión en PHP dado que los nombre de métodos y parámetros son los mismos.

La interfaz DOM de PHP permite también modificar la estructura del documento, agregando, modificando o eliminando elementos.

XPath

XPath en un mecanismo de consultas para XML. Con XPath se puede preguntar a un documento por un nodo específico que cumple ciertos criterios aún si se encuentra a varios niveles de profundidad visto desde la raiz del documento. Se puede también preguntar por la vecindad del nodo, por su ubicación relativa, etc. Se recomienda aprender a utilizar está herramienta estándar de XML para simplificar y hacer más eficiente el tratamiento de archivos XML en PHP.

Extensión de clases para el tratamiento de archivos XML.

Ahora es posible extender clases como DomDocument con operaciones que por ejemplo modifican el documento procesado. Esto puede hacer más legible el código para el procesamiento de archivos XML.

HTML

Con el soporte para la libraría libxml2 se incluyó la posibilidad de leer archivos HTML, inclusive con algunos errores, y utilizar toda la batería de herramientas para XML en ellos. Esto es muy util, por ejemplo, para procesar páginas provenientes de otros sitios web.

Validación

En PHP se puede utilizar cualquiera de los tres mecanismos de validación estándar para XML: DTD, XML Schema o RelaxNG, si bien el soporte completo para XML Schema, todavía está en desarrollo en la librería libxml2.

SimpleXML

SimpleXML es un mecanismo no estándar para acceder fácilmente al contenido de archivos XML. SimpleXML permite ver el archivo XML como si fuera una estrucutra arborescente construida con arreglos asociativos, de manera que los mecanismos para acceder a los elementos son mucho más cercanos al tratamiento usual de estrucuturas de datos en PHP. Su implenentación está también basada en libxml2 de manera que los que SimpleXML ofrece es un mecanismo adicional de acceso, no una representación diferente, lo quepermite utilizar SimpleXML en combinación con el resto de las herramientas para XML en PHP.

XSLT

El lenguage XSLT permite transformar documentos XML en otros docuemntos XML. Es un lenguaje funcional cuya sintaxis es también un siblenguaje de XML. Los archivos XSLT son generalmente llamados estilos. El API para XSLT está basado en el propuesto por Mozilla para JavaScript. El soporte para XSLT en PHP incluye la posibilidad de llamar funciones PHP desde XSLT. Esto es muy práctico pero hace que los estilos se salgan del estándar XSLT, lo cual puede representar un problema de portabilidad hacia otros lenguajes.

EL conjunto de estas opciones hacen de PHP un ambiente completo a la hora de manipular archivos XML.

Enlaces relacionados

Cursos relacionados