0% found this document useful (0 votes)
30 views14 pages

Extensible Stylesheet Language

XSL is a language for transforming and formatting XML documents. XSL consists of four parts including XSLT for transforming XML and XPath for navigating XML. Common XSLT elements include template, value-of, for-each, sort, if, choose for transforming XML content.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views14 pages

Extensible Stylesheet Language

XSL is a language for transforming and formatting XML documents. XSL consists of four parts including XSLT for transforming XML and XPath for navigating XML. Common XSLT elements include template, value-of, for-each, sort, if, choose for transforming XML content.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

XSL

Extensible Stylesheet Language


XSL is a style sheet language for XML documents.
XSL describes how the XML elements should be displayed.

XSL consists of four parts:


•XSLT - a language for transforming XML documents
•XPath - a language for navigating in XML documents
•XSL-FO - a language for formatting XML documents
•XQuery - a language for querying XML documents
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Link the XSL Style Sheet to the XML Document

<?xml version="1.0" encoding="UTF-8"?>


<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
What is XSLT?

XSLT stands for XSL Transformations


XSLT is the most important part of XSL
XSLT transforms an XML document into another XML document
XSLT uses XPath to navigate in XML documents
XSLT is a W3C Recommendation
The root element that declares the document to be an XSL style sheet is
<xsl:stylesheet> or <xsl:transform>.

The correct way to declare an XSL style sheet according to the W3C XSLT
Recommendation is:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

To get access to the XSLT elements, attributes and features we must declare
the XSLT namespace at the top of the document.
The xmlns:xsl="http://www.w3.org/1999/XSL/Transform" points to the
official W3C XSLT namespace. If you use this namespace, you must also
include the attribute version="1.0"
The <xsl:template> Element

The <xsl:template> element is used to build templates.


The match attribute is used to associate a template with an XML element. The match
attribute can also be used to define a template for the entire XML document. The value
of the match attribute is an XPath expression (i.e. match="/" defines the whole
document).
The <xsl:value-of> Element

The <xsl:value-of> element can be used to extract the value of an XML element
and add it to the output stream of the transformation:
The <xsl:for-each> Element

The <xsl:for-each> element allows you to do looping in XSLT.


<xsl:template match="/">
The XSL <xsl:for-each> element <html>
can be used to select every XML <body>
element of a specified node-set <h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
Filtering the Output

We can also filter the output from the XML file by adding a criterion to the select
attribute in the <xsl:for-each> element.

<xsl:for-each select="catalog/cd[artist='Bob Dylan']">

Legal filter operators are:

= (equal)
!= (not equal)
&lt; less than
&gt; greater than
XSLT <xsl:sort> Element <xsl:template match="/">
<html>
The <xsl:sort> element is used to <body>
sort the output. <h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<xsl:sort select="artist"/>
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="/">
XSLT <xsl:if> Element <html>
<body>
The <xsl:if> element is used to put a <h2>My CD Collection</h2>
conditional test against the content of the XML <table border="1">
file. <tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
<xsl:if test="expression">
<th>Price</th>
...some output if the expression is true...
</tr>
</xsl:if>
<xsl:for-each select="catalog/cd">
<xsl:if test="price &gt; 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
The <xsl:choose> Element
Syntax
<xsl:for-each select="catalog/cd">
<xsl:choose> <tr>
<xsl:when test="expression"> <td><xsl:value-of select="title"/></td>
... some output ... <xsl:choose>
</xsl:when> <xsl:when test="price &gt; 10">
<xsl:otherwise> <td bgcolor="#ff00ff">
... some output .... <xsl:value-of select="artist"/></td>
</xsl:otherwise> </xsl:when>
</xsl:choose> <xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
The <xsl:apply-templates> element applies a template to the current
element or to the current element's child nodes.

You might also like