开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

为什么在浏览器中利用XSLT进行XML转换受到限制
作者: Tony Patton
2006-04-27 17:20:33



无标题文档

关于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方面的知识,是一个专业的应用程序开发人员。

责任编辑:张琎

查看本文的国际来源

【上一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号