无标题文档
关于XSL样式表的几点提示:
- 样式表由一组或几组规则组成,这些规则被称作模板。每个模板都包含指定节点得到匹配时要应用的规则。匹配属性用来将模板与一个XML元素联系起来。反斜杠符号(/)表明模板用于整个XML文件。
- 样式表能够处理XML文件中的多个数据元素。for-each语句将所有元素连成循环。select属性定义它所处理的元素。我们的例子中使用了根响应元素。
- for-each元素(开始与结束标签)中包含的语句详细说明如何处理响应元素中的数据。
- value-of元素从XML文件中拉出一组数据。select属性指定从XML文件中拉出的数据内容。在本例中,我们应用公司名称与电话元素。
现在我们有了与XML相匹配的模板,最后一步就是将二者组合起来(或应用样式表)。IE中包含了一个XSLT引擎,所以应用它很方便。下面的代码中包含了XML与模板,并输出HTML结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="tr.xsl"?>
<response>
<telephone>502-000-0000</telephone>
<companyname>TechRepublic.com</companyname>
</response>
第二行代码告诉系统使用哪种样式表。在IE中装载XML应用了这个特殊的样式表,并按指定来说明数据。而且,我们还可以应用微软的XML解析器来执行转换,如列表B所示:
关于代码的几点提示:
- 建立一个XML解析器对象与XML文件和样式表协同工作。
- 文件通过加载(load)方法装载到内存中。
- XML解析器的transformNode方法将样式表应用于XML之中,JavaScript的document.write命令在发出要求的客户端对其进行说明。
注意,Mozilla的浏览器,如FireFox,通过XSLTProcessor对象提供XSLT支持,但对于建立一个不能满足所有访问者的公众网站,我一直持谨慎态度。这可不是客户环境受到控制的企业内联网网站的问题。否则,我宁愿在服务器上处理XSLT。当然,要利用后端来取消AJAX这样的开发方法。
选择路径
XML提供了一系列加载或说明数据的方法。你可以应用XMLHttpRequest对象与Xpath来加载及提取数据,或应用XSL样式表来做这项工作。XSLT提供了一种语言,用来将应用软件中的XML文件转换成所要求的格式。虽然浏览器中的XSLT受到了一些限制,但你可以执行服务器解决方案。
Tony Patton拥有丰富的Java、VB、Lotus及XML方面的知识,是一个专业的应用程序开发人员。
责任编辑:张琎
查看本文的国际来源
|