File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Transform.xslt" ?>
<neighbours>
<planet name="Venus">
<description>
description
</description>
<diameter> 12104 km (7505 miles)</diameter>
<moons> 0</moons>
<meanTemp> 482C (900F)</meanTemp>
<oneDay> 243.01 earth days</oneDay>
<oneYear> 224.7 earth days</oneYear>
</planet>
</neighbours>
File: Transform.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()"/>
<xsl:template match="neighbours">
<html>
<head>
<title>A simple HTML page</title>
</head>
<body>
<h1>Our neighbours</h1>
<xsl:apply-templates/>
<hr/>
2006.
</body>
</html>
</xsl:template>
<xsl:template match="planet">
<img width="100" height="100">
<xsl:attribute name="src"><xsl:value-of select="@name"/>.jpg
</xsl:attribute>
</img>
<h2>
<xsl:value-of select="@name"/>
</h2>
<xsl:value-of select="description/text()"/>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="diameter">
<li>
<strong>Diameter: </strong>
<xsl:value-of select="text()"/>
</li>
</xsl:template>
<xsl:template match="moons">
<li>
<strong>Moons: </strong>
<xsl:value-of select="text()"/>
</li>
</xsl:template>
<xsl:template match="meanTemp">
<li>
<strong>Mean temperature: </strong>
<xsl:value-of select="text()"/>
</li>
</xsl:template>
<xsl:template match="oneDay">
<li>
<strong>Length of one day: </strong>
<xsl:value-of select="text()"/>
</li>
</xsl:template>
<xsl:template match="oneYear">
<li>
<strong>Length of one year: </strong>
<xsl:value-of select="text()"/>
</li>
</xsl:template>
</xsl:stylesheet>
Output:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A simple HTML page</title></head>
<body>
<h1>Our neighbours</h1><img width="100" height="100" src="Venus.jpg%0A "><h2>Venus</h2>
description
<ul>
<li><strong>Diameter: </strong> 12104 km (7505 miles)
</li>
<li><strong>Moons: </strong> 0
</li>
<li><strong>Mean temperature: </strong> 482C (900F)
</li>
<li><strong>Length of one day: </strong> 243.01 earth days
</li>
<li><strong>Length of one year: </strong> 224.7 earth days
</li>
</ul>
<hr>
2006.
</body>
</html>
|