JSTL XML Tag x:transform Example
- Details
- Written by Nam Ha Minh
- Last Updated on 01 September 2019   |   Print Email
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.
Other JSTL XML Tags:
forEach | if | out | param | parse | set | choose, when, otherwise
About the Author:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.
Comments