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.

    Te puede interesar:Ejemplo: servicio REST con Apache Camel

    ¿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:

    Te puede interesar:Cómo ejecutar un script Bash al iniciar sesió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:

    Te puede interesar:Cómo instalar Maven
    <?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:

    Te puede interesar:Ejemplo: agregar autocompletar a JTextField

    Mi colección de coches

    Haz un modelo

    Te puede interesar:CMUcam Pixy explicado
    Lamborghini Gallardo

    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.

    Te puede interesar:Símbolos ES6

    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.

    Rate this post

    Etiquetas: