JSTL XML Tag x:transform Example
- Details
- Written by Nam Ha Minh
- Last Updated on 01 September 2019   |   Print Email
In this post, you will learn how to use the <x:transform> tag in the JSTL XML tags library with code example.
The <x:transform> tag does transformation of an XML document using an XSLT template.
The XSLT (Extensible Stylesheet Language Transformation) is a language used for transforming an XML document into any other format. Using XSLT, we can transform XML document to other format like HTML, Text etc.
JSTL <x:transform> Syntax:
<x:transform
var="<string>"
scope="<string>"
result="<string>"
doc="<string>"
docSystemId="<string>"
xslt="<string>"
xsltSystemId="<string>"/>
Attributes:
Name | Description |
var | Name of the variable to store the transformed XML document. This variable is of type org.w3c.dom.Document. |
scope | Scope to store the var. |
result | Result object which contains transformation result. |
doc | XML document to be transformed. This should be a well formed XML document. |
docSystemId | The URI of the XML document being parsed. |
xslt | XSLT Template to be used to transform the XML document. |
xsltSystemId | The URI of the XSLT document. |
JSTL <x:transform> Example:
The following JSP code transforms an XML document which contains citizens information and prints the data in a tabular format. We’re using a simple XSLT template to transform the XML document.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title><x:transform> Demo</title> </head> <body> <h1><x:transform> Demo</h1> <c:import url="http://localhost:8080/JSTL-Tag-Reference/tag-types/xml/citizen-template.xsl" var="xsltTemplate"/> <c:import url="http://localhost:8080/JSTL-Tag-Reference/tag-types/xml/citizens.xml" var="citizenXML"/> <x:transform doc="${citizenXML}" xslt="${xsltTemplate}"/> </body> </html>
XSLT Template (given for reference):
<?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="citizens"> <table border="1" width="200"> <xsl:for-each select="citizen"> <tr> <td> <xsl:value-of select="ssn" /> </td> <td> <xsl:value-of select="firstname" /> </td> <td> <xsl:value-of select="lastname" /> </td> <td> <xsl:value-of select="role" /> </td> <td> <xsl:value-of select="salary" /> </td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>
XML Document (given for reference):
<?xml version='1.0' encoding='UTF-8' standalone='no'?> <citizens> <citizen> <ssn>Z345T</ssn> <firstname>Cheryl</firstname> <lastname>Johnson</lastname> <role>Manager</role> <salary>12000</salary> </citizen> <citizen> <ssn>Z446T</ssn> <firstname>John</firstname> <lastname>Smith</lastname> <role>Employee</role> <salary>1000</salary> </citizen> <citizen> <ssn>Z335T</ssn> <firstname>Justin</firstname> <lastname>Claire</lastname> <role>Senior Manager</role> <salary>14000</salary> </citizen> <citizen> <ssn>Z389T</ssn> <firstname>Clark</firstname> <lastname>Rick</lastname> <role>Employee</role> <salary>2000</salary> </citizen> </citizens>
Output:
Recommended Usage of <x:transform> tag:
The <x:transform> tag is used to transform an XML document into another format using defined XSLT template. XSLT is a flexible way of transforming any XML document to other formats like HTML, Text to name a few. The XSLT is really powerful and flexible language transformation language.
XPath JAR download
We may have to download the following JAR files and put them under WEB-INF/lib folder. These JAR files are necessary especially when we have XPath expressions.
Other JSTL XML Tags:
forEach | if | out | param | parse | set | choose, when, otherwise
Comments