CSS(叠层样式表)和XSL(可扩展样式语言)都可以定义XML文件的显示.
如果一个XML文件仅仅用于交换信息,就无需考虑它的显示问题。编辑XML文件,我们仅仅需要关注文件的内容、信息的结构,至于它怎么显示,则交给CSS(叠层样式表)和XSL(可扩展样式语言)来完成。此外使用数据岛技术与javascript也能定制xml的内容显示,这就使得用户可以根据需要来定义数据的表现形式。
1)用css来显示xml
具体的语法如下:〈?xml-stylesheet href="URL"type="text/css"?〉其中,xml-stylesheet是关键字,表明引用样式表设定;href="URL"用来指定样式表所在的位置.
使用步骤:
a) 建立样式表档案.(*.css)
b) 将css连接到xml文件。(使用上面的语法)
示例:http://www.leftworld.net/online/xml/xml_cn/xml_display.asp.htm
2)用xsl来表示xml
XSL是怎样工作的呢?XML文件在展开后是一种树状结构,称为“原始树”,XSL处理器(现在只有IE5支持XSL,在IE5中的处理器叫:XSLStylesheetProcessor)从这个树状结构读取信息,根据XSL样式的指示对这个“原始树”进行排序、复制、过滤、删除、选择、运算等操作后产生另外一个“结果树”,然后在“结果树”中加入一些新的显示控制信息,如表格、其他文字、图形以及一些有关显示格式的信息。XSL处理器根据XSL样式表的指示读取XML文件中的信息,然后再重新组合后转换产生一个Well-Formed的HTML文件。
XSL由三部分组成: XML文档转换(XML Document Transformation ,又叫XSLT),模式匹配语法( a pattern matching syntax ,又叫XPath), 格式话对象( a formatting object interpretation,XSL FO)。
具体的语法如下:〈?xml-stylesheet href="URL"type="text/xsl"?〉其中,xml-stylesheet是关键字,表明引用样式表设定;href="URL"用来指定样式表所在的位置.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> xmlns:xsl="http://www.w3.org/TR/WD-xsl"这一句主要用来说明该XSL样式表是使用W 3C 所制定的XSL,设定值就是XSL规范所在的URL地址。
1. xsl:stylesheet:作为XSL样式表中的根元素,在每个XSL文件中都必须有。
2. xsl:template:指定XML文件中的特定标记来定义排版样式。
属性:language:指定使用哪种脚本语言。
match:设定从XML文件中哪个标记开始来读取信息,如果值为“/”那么表示从XML文件的根元素开始读取信息。
3.xsl:value-of:从XML文件中的特定标记中将信息读出来。
属性:select:设定读取哪一个标记中的信息。
例:〈xsl:templateselect="title"〉:表示要从〈title〉标记中将信息读出来。
4.xsl:for-each:将排版样式应用到XML文件中相同的标记(类似于循环语句)。
属性:select:设定从哪一个标记中读取数据。
order-by:在读取信息完成之后,设定依据什么标记来进行排序,值为某一特定标记,如在标记名前用“+”号表示是由大到小的排序,反之用“-”号。
5.xsl:comment:在此元素中的内容,XSL将它作为注释信息,并不显示在浏览器中。
6.xsl:apply-templates:指示XSL处理器在该XSL样式表中寻找合适的〈xsl:template〉中设定的样式来用。
7.xsl:copy:从XML文件中拷贝标记中的信息到输出的文件中。无属性。
8.xsl:if:与一般程序中的If...Then类似。
语法:
<xsl:if expr="script-expression" language="language-name" test="pattern">
属性:
expr ── 脚本语言表达式,计算结果为"真"或"假";如果结果为"真",且通过test,则在输出中显示其中内容(可省略此项属性)。
language ── expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPT的LANGUAGE属性的取值相同,缺省为"JScript"。
test ──源数据测试条件。
9.xsl:choose、xsl:when、xsl:otherwise:这三个元素是用来设定较为复杂的条件式,一般共同配合使用。其中xsl:when有script、language、test三种属性,与前面xsl:if中的属性含义是一样的。
10.xsl:attribute和xsl:element:可以在标记中附加一个属性名称或新建一个标记。XSL样式表不但可以引用HTML标记,而且也可以建立新的标记和属性,然后一起结合XML文件中的信息来显示。其中,xsl:attribute是在标记中新增一个属性,xsl:element是新建一个标记。它们有共同的属性。
示例:
使用步骤:
c) 建立xsl样式档案表
d) 将xsl样式表连接到xml文件。(使用上面的语法)
3) xml数据岛技术
xml所谓的数据岛就是在html网页中嵌入XML的一种技术。
使用步骤:
1 将XML文档载入数据岛
<xml src="cd_catalog.xml" id="xmldso" async="false">
</xml>
使用上面示例代码,可以把cd_catalog.xml文件载入一个叫"xmldso"的数据岛中
2 把XML数据绑定到HTML的表格元素中
把XML数据绑定到table元素,需要在table属性添加一个资源属性,并且在span元素中添加字段属性: <span>或<div>元素都可以用来显示XML数据。
<table datasrc="#xmldso" width="100%" border="1">
<td><span datafld="YEAR"></span></td>
<span datasrc="#xmldso" datafld="YEAR"></span>
<div datasrc="#xmldso" datafld="YEAR"></div>
此外,ie5以上的浏览器也支持在html文本中加入xml数据格式,然后本地解析。有2种形式:
a)上面那种数据岛的本地数据形式。
Eg:
<xml id='ShareInfo'>
<!-xml data --!
</xml>
<table datasrc="#ShareInfo" >
<!-用span, div元素,元素属性datafld 来获取数据--!>
</table>
b)用xsl的遍历来获取数据
Eg:























备注:html文本中的html中的对象<input type="TYPE" name="NAME" value="VALUE">
在xsl中要表达成这样
<xsl:element name="input">
<xsl:attribute name="type">TYPE</xsl:attribute name>
<xsl:attribute name="name">NAME</xsl:attribute name>
<xsl:attribute name="value">VALUE</xsl:attribute name>
</xsl:element>
此外:xsl中还可自定义元素及属性。
4) 用javascript来显示xml数据
下面的代码可以将一个XML文档或xml字符串载入解析器:








http://www.leftworld.net/online/xml/xml_cn/tryit.asp-filename=note.htm