XSLT explicado

    驴Qu茅 es XSLT?

    XSLT es, en mi opini贸n, similar a los motores de plantillas Mako y Chameleon. XSLT se utiliza principalmente para transformar alg煤n tipo de lenguaje de marcado estructurado (como XML) a otra forma, como HTML, JSON o incluso otro documento XML. Esto se hace mediante el uso de identificadores XPath y elementos de etiqueta XSL. Para una transformaci贸n de un documento XML en otro, puede usar un elemento de plantilla XSLT, que usa un archivo XSLT existente para definir c贸mo debe verse el XML resultante.

    驴Por qu茅 es 煤til XSLT?

    La utilidad de XSLT se puede demostrar mejor con un ejemplo. Entonces, digamos que tenemos el documento XML a continuaci贸n:

    <?xml version="1.0" encoding="ISO-8859-1"?>
      <collection>
        <car>
          <make>Lamborghini</make>
          <model>Gallardo</model>
          <year>2013</year>
          <price>$250,000</price>
        </car>
        <car>
          <make>Ferrari</make>
          <model>F12</model>
          <year>2012</year>
          <price>$330,000</price>
        </car>
        <car>
          <make>Honda</make>
          <model>Civic</model>
          <year>2004</year>
          <price>$2,500</price>
        </car>
    </collection>
    

    Quiz谩s preferimos mostrar partes de este XML en un formato agradable y legible por humanos, como HTML. Entonces, crear铆amos una plantilla, como esta:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <html>
        <body>
          <h5>My Car Collection</h5>
          <table border="1">
            <tr bgcolor="#EC5923">
              <th>Make</th>
              <th>Model</th>
            </tr>
            <tr>
              <td><xsl:value-of select="collection/car/make"/></td>
              <td><xsl:value-of select="collection/car/model"/></td>
            </tr>
          </table>
        </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
    

    El uso de esta plantilla en el XML que ten铆amos arriba dar铆a como resultado el siguiente HTML:

    Mi colecci贸n de coches

    Haz un modelo

    LamborghiniGallardo

    Esto, obviamente, es mucho m谩s f谩cil de leer. Aunque XSLT no es estrictamente necesario para transformar XML en HTML. En su lugar, podr铆a usarlo para transformar XML en una estructura diferente.

    Por otro ejemplo, tal vez trabaje para una empresa que recibe datos XML de sus proveedores que detallan la cantidad de inventario que tienen disponible para sus productos, de la A a la Z. Pero solo le interesan los productos S, R y W, as铆 que en lugar de almacenar Toda esa informaci贸n innecesaria, en su lugar, usar铆a una plantilla XSLT para extraer solo la informaci贸n que le interesa, que en este caso son los productos S, R y W. La aplicaci贸n de este m茅todo en una escala mayor dar铆a como resultado una gran cantidad de memoria guardada y mucho menos desorden con el que lidiar. Adem谩s, podr铆a decirse que cambiar el formato del documento ser铆a mucho m谩s f谩cil que tener que volver a compilar c贸digo que hace lo mismo.

    Tenga en cuenta que este breve ejemplo solo muestra una peque帽a cantidad de lo que XSLT realmente puede hacer. Para tener una mejor idea de lo que es posible, aseg煤rese de consultar los recursos a continuaci贸n.

    驴C贸mo se usa XSLT?

    Hay muchas formas de utilizar XSLT, incluidas navegadores, Java, Python y pr谩cticamente cualquier otro lenguaje de programaci贸n que se te ocurra.

    Como con todo, las transformaciones XSLT se pueden realizar f谩cilmente en Python (con la paquete lxml):

    import lxml.etree as et
    
    xml = et.parse(xml_filename)
    xslt = et.parse(xsl_filename)
    transform = et.XSLT(xslt)
    newXml = transform(xml)
    print(et.tostring(newXml, pretty_print=True))
    

    Y como mencion茅 antes, XSLT puede transformar XML a JSON.

    Etiquetas:

    Deja una respuesta

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