Tecnología

Inicio

Cómo convertir XML a CSV El uso de XSL

Cómo convertir XML a CSV El uso de XSL


El creciente uso de tecnologías XML en diversas aplicaciones ha resultado en la necesidad de archivos XML de salida en varios formatos para sistemas heredados pueden volver a utilizarlos. Para muchos programadores y profesionales de TI, esta conversión es a menudo mucho tiempo y requiere un cuidadoso estudio de las estructuras de datos incrustados en el documento XML. Lenguaje de estilo extensible (XSL) ayuda a los programadores en la transformación de los archivos XML en HTML.

Instrucciones

1 Viendo XML requiere el uso de Extensible Stylesheet Language Transformations (XSLT), que es el lenguaje de hojas de estilo recomendada de XML por World Wide Web Consortium (W3C) y es más sofisticado que la hoja de estilo en cascada (CSS). XSLT se utiliza a menudo para transformar XML en HTML antes de ser mostrada por un navegador. Un ejemplo de un documento XML / archivo (es decir, sample.xml) se muestra a continuación:

<? Xml version = "1.0" encoding = "UTF-8"?>
<alumnos>

&lt;student id=&quot;10001&quot;>
&lt;name given=&quot;Mark&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1123 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5553&lt;/phoneNumber>
&lt;/student>
.....
.....

</ Estudiantes>

En el archivo sample.xml dado, se puede transformar el XML usando el siguiente código fuente XSL (es decir, sample.xsl):

<? Xml version = "1.0" encoding = "UTF-8"?>
<Xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform&quot;

xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
&lt;xsl:template match=&quot;/&quot;>
&lt;html>
&lt;table>
&lt;xsl:for-each select=&quot;//student&quot;>
&lt;tr>
&lt;td>
&lt;xsl:value-of select=&quot;@id&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;name/@given&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;name/@family&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;gender&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@street&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@city&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@state&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;emailAddress&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;phoneNumber&quot;/>
&lt;/td>
&lt;/tr>
&lt;/xsl:for-each>
&lt;/table>
&lt;/html>
&lt;/xsl:template>

</ Xsl: stylesheet>

2 Para convertir el archivo sample.xml a CSV, tendrá que hacer referencia a la hoja de estilo XSL más arriba en el documento XML utilizando la información del encabezado: <? Xml-stylesheet type = "text / xsl" href = "sample.xsl"> . El documento XML resultante será similar al que se muestra a continuación.

<? Xml version = "1.0" encoding = "UTF-8"?>
<? Xml-stylesheet tipo = "text / xsl" href = "sample.xsl"?>
<alumnos>

&lt;student id=&quot;10001&quot;>
&lt;name given=&quot;Mark&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1123 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5553&lt;/phoneNumber>
&lt;/student>
&lt;student id=&quot;10002&quot;>
&lt;name given=&quot;Jane&quot; family=&quot;Doe&quot;/>
&lt;gender>Female&lt;/gender>
&lt;address street=&quot;1271 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5554&lt;/phoneNumber>
&lt;/student>
&lt;student id=&quot;10003&quot;>
&lt;name given=&quot;John&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1281 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5555&lt;/phoneNumber>
&lt;/student>

</ Estudiantes>

3 Al abrir el código fuente sample.xml anterior en un navegador, que va a generar una salida CSV en el navegador, similar al que se muestra a continuación:

10001, Mark Smith, Hombre, 1123 Buffalo Street, Indianápolis, IN, marksmith @ abc.com, 555-555-5553
10002, Jane Doe, Mujer, 1271 Buffalo Street, Indianápolis, IN, janedoe @ abc.com, 555-555-5554
10003, John Smith, Hombre, 1281 Buffalo Street, Indianápolis, IN, johnsmith @ abc.com, 555-555-5555

Consejos y advertencias

  • Hay otros enfoques para la conversión de datos XML a CSV. La elección dependerá del tipo de proyecto que se está trabajando. Por ejemplo, si se está trabajando con un conjunto de datos XML que se almacena en la base de datos MySQL, y luego usted puede exportar los datos de MySQL a una hoja de cálculo de Excel y luego convertir la hoja de cálculo resultante a CSV.