How to apply XSL transformation on an XML document?

JSPJava 8Object Oriented ProgrammingProgramming

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
raja
Published on 25-Mar-2019 11:31:40
Advertisements