Crear XML con PHP (I)

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

xml_con_phpLos formatos de intercambio de datos permiten pasar datos de una aplicación a otra empleando normalizaciones que son aceptadas, entendibles y manejables por cualquier lenguaje de programación moderno. Esto permite compartir información entre distintas aplicaciones, escritas, incluso, en lenguajes diferentes, agilizando muchas operaciones.

Los formatos más conocidos son, sin duda, RSS, XML y JSON. En esta serie de artículos nos vamos a centrar en el intercambio de datos en XML con PHP.

En primer lugar vamos a ver cómo crear un XML con datos procedentes de cualquier origen en nuestra aplicación (entradas de un formulario, lectura de una BBDD, etc).

CREAR XML A “LO BRUTO”

Existen dos maneras de crear un XML. A “lo bruto” y bien, mediante los recursos que PHP nos ofrece. En este primer artículo vamos a aprender a hacerlo “a lo bruto”. Lo que aquí vamos a exponer es la forma en que NO debe crearse un XML, NUNCA, JAMÁS, DE NINGUNA MANERA, Y POR NINGÚN CONCEPTO. Y, sí es así, ¿por qué vamos a dedicarle un artículo? La respuesta breve y concisa es: porque sí. Porque, de esta forma, entenderemos la naturaleza de un archivo XML y comprenderemos cómo podemos generarlo de modo que sea entendible y procesable por cualquier aplicación.

Por lo tanto, vamos a dejar claro que el objetivo de este artículo es, digámoslo así, pre-didáctico. Será en el siguiente artículo cómo aprenderemos la forma correcta de crear un XML con PHP. Sin embargo, todos, en alguna ocasión, hemos sufrido la tentación de hacerlo cómo vamos a ver aquí. Y, si copias los códigos que incluiremos verás que, funcionar, lo que se dice funcionar, funcionan pero, si yo usara este método para crear un XML en mi trabajo, me supondría una merecida larga estancia en la cola del paro (al menos, si se enterara mi jefe, claro 😉 ).

Vamos a partir de una colección de datos, en una estructura definida, que podemos tener, por ejemplo, en una matriz, cómo la que vemos a continuación:

Cómo puedes ver, se trata de una colección estructurada de datos que podemos querer generar con nuestra aplicación para que sea entendible por otra distinta. La salida en XML podría responder a lo siguiente:

Por supuesto, el formato de salida puede variar, en base al acuerdo al que se llegue con el fabricante de la otra aplicación, pero, para nuestro ejemplo, este está bien. En todo caso es un formato normalizado.

El PHP que, a partir de la matriz, genera el fichero XML es el siguiente:

Y aquí es donde está la chapuza flagrante. Cómo ves, el XML se ha generado cómo una cadena de texto, pura y dura, a partir de los datos contenidos en la matriz (observa las líneas resaltadas). Si -dirás-, pero el código funciona. Es cierto, pero, en primer lugar, hiere a la vista. Además, es incómodo y difícil de mantener. Si hay que cambiar la estructura del XML, por ejempo con los atributos o los contenidos de los elementos, o añadir espacios de nombres, sólo en “ver” cómo funciona y modificarlo se pierde mucho tiempo.

Lo cierto es que PHP nos proporcina medios más que suficientes para lograr el mismo resultado de una forma mucho más limpia, eficiente y mantenible en el tiempo. En el próximo artículo veremos la forma correcta de escribir un documento XML.

     

3 comentarios:

  1. Pingback: Crear XML con PHP (II) » eldesvandejose.com

  2. Gracias! Vamos por la II Parte

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *