JSTL - Tag XML <x: transform>

o <x:transform> tag aplica uma transformação XSL em um documento XML.

Atributo

o <x:transform> tag tem os seguintes atributos -

Atributo Descrição Requeridos Padrão
doc Documento XML de origem para a transformação XSLT Não Corpo
docSystemId URI do documento XML original Não Nenhum
xslt Folha de estilo XSLT com instruções de transformação sim Nenhum
xsltSystemId URI do documento XSLT original Não Nenhum
resultado Objeto de resultado para aceitar o resultado da transformação Não Imprimir na página
var Variável que é definida para o documento XML transformado Não Imprimir na página
escopo Escopo da variável para expor o resultado da transformação Não Nenhum

Exemplo

Considere a seguinte folha de estilo XSLT style.xsl -

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" 
   version = "1.0">

<xsl:output method = "html" indent = "yes"/>
   <xsl:template match = "/">
      <html>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>

   <xsl:template match = "books">
      <table border = "1" width = "100%">
         <xsl:for-each select = "book">
            <tr>
               <td>
                  <i><xsl:value-of select = "name"/></i>
               </td>
               
               <td>
                  <xsl:value-of select = "author"/>
               </td>
               
               <td>
                  <xsl:value-of select = "price"/>
               </td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>

</xsl:stylesheet>

Agora considere o seguinte arquivo JSP -

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>

<html>
   <head>
      <title>JSTL x:transform Tags</title>
   </head>

   <body>
      <h3>Books Info:</h3>
      <c:set var = "xmltext">
         <books>
            <book>
               <name>Padam History</name>
               <author>ZARA</author>
               <price>100</price>
            </book>
          
            <book>
               <name>Great Mistry</name>
               <author>NUHA</author>
               <price>2000</price>
            </book>
         </books>
      </c:set>

      <c:import url = "http://localhost:8080/style.xsl" var = "xslt"/>
      <x:transform xml = "${xmltext}" xslt = "${xslt}"/>

   </body>
</html>

Você receberá o seguinte resultado -

Books Info:

Padam History

ZARA

100

Great Mistry

NUHA

2000