XSLT(2) Essential elements in stylesheet and sample XSLT application

<xsl:stylesheet>

This is the XSLT stylesheet document element. This element usually defines a namespace xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 

<xsl:output>


defines the format of the output document.
For HTML:
<xsl:output method="html" indent="yes" />

For XML:
<xsl:output method="xml" version="1.0" indent="yes"/>


<xsl:template>

An XSLT processor looks for xsl:template element that has a match attribute of "/"(root node) to begin the translation.
So the elements in this element usually contain a lot of html tags.
<xsl:apply-templates> element is always used to display the match element.

<xsl:template> content contains HTML elements and elements from xml file - specifically, <xsl:value-of> element.

template can have a mode attribute to specify the template

<xsl:apply-templates>

<xsl:apply-templates> element cause the process to look for the template that has matching nodes in the source tree.
apply-templates element also have mode attribute to select the specific mode of the template

catalog.xml which specifies a xsl stylesheet

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="catalog.xslt"?>

<catalog>
	<cd>
		<title>Empire Burlesque</title>
		<artist>Bob Dylan</artist>
		<country>USA</country>
		<company>Columbia</company>
		<price>10.90</price>
		<year>1985</year>
	</cd>
	<cd>
		<title>Hide your heart</title>
		<artist>Bonnie Tyler</artist>
		<country>UK</country>
		<company>CBS Records</company>
		<price>9.90</price>
		<year>1988</year>
	</cd>
</catalog>


catalog.xsl


<?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" indent="yes" />
	<xsl:template match="/">
	<html>
		<body>
			<h2>My CD Collection</h2>
			<table border="1">
				<tr bgcolor="#9acd32">
				<th>Title</th>
				<th>Artist</th>
				<th>Year</th>
				</tr>
				<xsl:for-each select="catalog/cd">
					<tr>
					<td><xsl:value-of select="title" /></td>
					<td><xsl:value-of select="artist" /></td>
					<td><xsl:value-of select="price" /></td>
					</tr>
				</xsl:for-each>
			</table>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

For XSLT2.0 Use Saxon processor to translate the page

Saxon reference

java -cp saxon9ee.jar net.sf.saxon.Transform -t -s:catalog.xml -xsl:catalog.xslt -o:catalog.html

output:

<html>
	<body>
		<h2>My CD Collection</h2>
		<table border="1">
			<tr bgcolor="#9acd32">
				<th>Title</th>
				<th>Artist</th>
				<th>Year</th>
			</tr>
			<tr>
				<td>Empire Burlesque</td>
				<td>Bob Dylan</td>
				<td>10.90</td>
			</tr>
			<tr>
				<td>Hide your heart</td>
				<td>Bonnie Tyler</td>
				<td>9.90</td>
			</tr>
		</table>
	</body>
</html>


For XSLT1.0 you can just browse the xml file directly!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值