我们已经知道,XML文件用来存放数据,而如何表现XML则要借助其他的手段。我们现在推荐您使用IE5.0。如果您在IE5.0中直接打开 一个XML文件,那么你看到的只是XML的源代码;要进一步以更灵活更丰富的形式来表示,就要借助于CSS或XSL。如何使用CSS,建议阅读CSS2规范(W3C建议) . 这里我们想介绍如何用XSL来表现您的XML.
首先我们给出一个XML文件(stock-sorter.xml)的简单例子:
Technology Stock Index
1999-08-13T15:56:00
AOL
america online inc
92.250
-1.125
-1.20
4.99
CSCO
cisco sys inc
50.688
-1.688
-3.22
18.23
DELL
dell computer corp
53.000
-3.063
-5.46
32.95
......
其中元素portfolio是在portfolio文件中定义的:
在stock-sorter.xml文件中第一行的处理指令(Process Instruction): 表示由simple.xsl来规定XML的表现方式。当我们在IE中打开该XML时,浏览器根据其中所规定的XSL的位置去得到该XSL,并通过XSL 处理器将XML和XSL结合成为XSL定义的输出形式。这里我们将其输出形式定为HTML格式,是为了方便在浏览器中直接显示。好,让我们来看简单的XSL文件是怎样写的:
Simple.xsl:
-
(change: )
以上的代码很容易理解,关键是采用选择语句(for-each select)在XML树结构中进行选择,并把得到的结果树(Result Tree)包容于HTML中(value-of select).其实这只是简单的XSL语句.XSL的脚本语言叫做ECMAScript,它是在JavaScript的基础上发展的。如果我们要改变stock-sorter.xml的表现,只要在stlye sheet的href中指定另外的XSL文件。
在XSL的规范定义了XML的匹配模板(Template),设置匹配字符,则处理时将从XML的根节点(Root Node)搜索匹配的节点.如:.通常构成HTML格式的模板,它可以只是XSL的一部分。您还可以写XSL的脚本,举个示例:
还可以加XSL的注释,如:
让我们给出另一个较为复杂的例子,并据此进一步学习XSL:
Complex.xsl:
up
down
formatDate(this.nodeTypedValue, "MMMM dd',' yyyy") at formatTime(this.nodeTypedValue, "hh:mm tt")
formatNumber(this.nodeTypedValue, "$0.00")
+
formatNumber(this.nodeTypedValue, "0.0") %
formatNumber(this.nodeTypedValue * 1000000, "#,###,###")
如果你要显示中文,你只要在XML和XSL文件的的开头分别加上:即可.试试看!
|
|
Click on the column headers to sort by that field. Demonstration of custom formatting of data typed values and local reapplication of the stylesheet. Stocks losing more than 5% indicated in red. Stocks gaining value indicated in green. |
|
Company |
Symbol |
Price |
Change |
%Change |
Volume |