JSTL - XML <x:transform> Tag


Advertisements


The <x:transform> tag applies an XSL transformation on an XML document.

Attribute

The <x:transform> tag has the following attributes −

Attribute Description Required Default
doc Source XML document for the XSLT transformation No Body
docSystemId URI of the original XML document No None
xslt XSLT stylesheet providing transformation instructions Yes None
xsltSystemId URI of the original XSLT document No None
result Result object to accept the transformation's result No Print to page
var Variable that is set to the transformed XML document No Print to page
scope Scope of the variable to expose the transformation's result No None

Example

Consider the following XSLT stylesheet style.xsl

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "https://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>

Now consider the following JSP file −

<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://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 = "https://localhost:8080/style.xsl" var = "xslt"/>
      <x:transform xml = "${xmltext}" xslt = "${xslt}"/>

   </body>
</html>

You will receive the following result −

Books Info:

Padam History

ZARA

100

Great Mistry

NUHA

2000

jsp_standard_tag_library.htm

Advertisements