原著:Jan Egil Refsnes 翻译:阿捷
二.XSL的转换
1.将XML转换成HTML
XSL是如何将XML文档转换成HTML文件的呢?我们来看一个例子,下面是XML文档的一部分:
1<catalog>
2<cd>
3<title>Empire Burlesque</title>
4<artist>Bob Dylan</artist>
5<country>USA</country>
6<company>Columbia</company>
7<price>10.90</price>
8<year>1985</year>
9</cd>
10
11...
12
13
14
15
16然后我们将下面的XSL文件作为HTML的模板将XML数据转换为HTML文件:
17
18
19
20
21<?xml version=\'1.0\'?>
22<xsl:stylesheet xmlns:xsl='\"http://www.w3.org/TR/WD-xsl\"'>
23<xsl:template match='\"/\"'>
24<html>
25<body>
26<table bgcolor='\"yellow\"' border='\"2\"'>
27<tr>
28<th>Title</th>
29<th>Artist</th>
30</tr>
31<xsl:for-each select='\"CATALOG/CD\"'>
32<tr>
33<td><xsl:value-of select='\"TITLE\"/'></xsl:value-of></td>
34<td><xsl:value-of select='\"ARTIST\"/'></xsl:value-of></td>
35</tr>
36</xsl:for-each>
37</table>
38</body>
39</html>
40</xsl:template>
41</xsl:stylesheet>
42
43
44
45
46在上面的代码中, xsl:for-each元素的作用是定位XML文档中的哪些元素需要按以下模板显示。select属性用来定义源文件中的元素名。指定属性的这种语法又称为XML
47Pattern(模式),类似文件子目录的表示形式。xsl:value-of元素用来在当前层次中插入子元素的内容模板。
48
49因为XSL样式表自身也是一个XML文档,因此,XSL文件的开头以一个XML声明开始。 xsl:stylesheet元素用来声明这是一个样式表文件。<xsl:template match='\"/\"'>语句表示XML的源文档在当前目录下。
50
51如果为XML文档加上XSL样式表,看下面代码第2行,你的浏览器就可以精确的将XML 文档转换为HTML文件。
52
53
54
55
56<?xml version=\"1.0\" encoding=\"ISO8859-1\" ?>
57<?xml-stylesheet type=\"text/xsl\" href=\"cd_catalog.xsl\"?>
58<catalog>
59<cd>
60<title>Empire Burlesque</title>
61<artist>Bob Dylan</artist>
62<country>USA</country>
63<company>Columbia</company>
64<price>10.90</price>
65<year>1985</year>
66</cd></catalog></xsl:template></catalog>