How to apply XSL transformation on an XML document?


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

Attribute

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

AttributeDescriptionRequiredDefault
docSource XML document for the XSLT transformationNoBody
docSystemIdURI of the original XML documentNoNone
xsltXSLT stylesheet providing transformation instructionsYesNone
xsltSystemIdURI of the original XSLT documentNoNone
resultResult object to accept the transformation's resultNoPrint to page
varVariable that is set to the transformed XML documentNoPrint to page
scopeScope of the variable to expose the transformation's resultNoNone

Example

Consider the following XSLT stylesheet 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>

Now consider the following JSP file −

<%@ 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>

You will receive the following result −

Books Info

Padam History
ZARA
100
Great Mistry
NUHA
2000

Samual Sam
Samual Sam

Learning faster. Every day.

Updated on: 30-Jul-2019

351 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements