转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
XSLT是什么类型的语言?         ★★★★

XSLT是什么类型的语言?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1319 更新时间:2009/4/23 11:18:03

   <td>Drawn</td>
   <td>Lost</td>
   <td>For</td>
   <td>Against</td>
   </tr>
   <xsl:for-each select="$teams">
   <xsl:variable name="this" select=".">
   <xsl:variable name="played" select="count($matches[team=$this])">
  
   <xsl:variable name="won"
   select="count($matches[team[.=$this]/@score > team[.!=$this]/@score])">
   <xsl:variable name="lost"
   select="count($matches[team[.=$this]/@score < team[.!=$this]/@score])">
   <xsl:variable name="drawn"
   select="count($matches[team[.=$this]/@score = team[.!=$this]/@score])">
   <xsl:variable name="for"
   select="sum($matches/team[.=current()]/@score)">
   <xsl:variable name="against"
   select="sum($matches[team=current()]/team/@score) - $for">
  
   <tr>
   <td><xsl:value-of select="."></td>
   <td><xsl:value-of select="$played"></td>
   <td><xsl:value-of select="$won"></td>
   <td><xsl:value-of select="$drawn"></td>
   <td><xsl:value-of select="$lost"></td>
   <td><xsl:value-of select="$for"></td>
   <td><xsl:value-of select="$against"></td>
   </tr>
   </xsl:for-each>
   </table>
  </body></html>
  </xsl:template>
  
  </xsl:transform>
  
  
  
  
  
  这里没有足够的篇幅来完整地说明这个样式表,简而言之,它为球队声明了一个变量,变量值是一个节点集合,其中每个参赛球队都有一个实例。然后它计算每支球队的胜、平或负的比赛场次总数,以及球队进球或失球的总数。图 3 显示了它在浏览器中的最终输出结果。
  
  
  
  图 3. 清单 3 中名次样式表的结果
  
  
  这个示例的目的是说明 XSLT 不单单能够对源文档中出现的文本指定字体和布局。它是一个完整的编程语言,能够以任何方式转换源数据以供显示,或者输入另一个应用程序。
  
  XSLT 的优点
  您为什么考虑使用 XSLT?
  
  XSLT 给了您传统高级声明编程语言的所有好处,特别是对于转换 XML 文档的任务。
  
  高级语言带来的实际好处是开发生产力。但实际上,真正的价值源自于更改的潜力。与使用低级 DOM 和 SAX 接口编码的过程性应用程序相比,用于转换 XML 数据结构的 XSLT 应用程序更能适应对 XML 文档细节的更改。在数据库世界中,这种特性叫做数据独立性,正是由于数据独立性导致了诸如 SQL 之类声明性语言的成功,并使旧的引导性数据访问语言走向衰亡。我坚信在 XML 世界中也会这样。
  
  当然与所有声明性语言一样,XSLT 也会降低性能。但是对于大多数应用程序,今天的 XSLT 处理器的性能已经完全能够满足应用程序的需要,并且它会变得越来越好。在我的第二篇文章中,我将讨论 XSLT 处理器中使用的一些优化技巧,如我自己的 Saxon 产品。
  
  结束语
  我想要在本文中展示的是 XSLT 是一种用于操作 XML 文档的完整高级语言,就如同 SQL 是操作关系表的高级语言一样。应该注意到 XSLT 不仅是一种样式设计语言,它比 CSS(或者甚至 CSS2)的功能更强大。
  
  我见到过一些应用程序,它们的所有商务逻辑都用 XSLT 编码。在一个三层在线银行系统中,我看到:
  
  
  从后端操作系统以 XML 消息的形式检索所有数据。
  在联机会话的持续时间内,用户的帐户数据在内存中以 XML DOM 形式表示。
  所有给用户的信息首先封装成 XML 消息,然后用服务器或客户机附带的 XSLT 转换根据浏览器的性能将这些消息转换成 HTML。
  
  该应用程序的数据都是 XML 格式的,并且逻辑(包括数据访问逻辑、商务逻辑和显示逻辑)都由 XSLT 来实现。我建议每个项目都采用那种体系结构,但这还需要很长时间,我认为我们会在几年之内见到那种系统。
  
  作为一种编程语言,XSLT 有许多特性 -- 从它使用 XML 语法到其功能性编程原理的基础 -- 还不为一般 Web 程序员所熟悉。那意味着一条陡峭的学习曲线和通常遇到许多挫折。当初对于 SQL 也是如此,所有这些表示 XSLT 与以前的编程语言有着本质的区别。但不要放弃:它是功能非常强大的技术,值得努力学习。
  
  参考资料
  
  同一个作者撰写的 Wrox 书籍 XSLT Programmer's Reference。XSLT 语言的综合指南。
  W3C 出版的 XSLT 1.0 Recommendation。XSLT 语言的权威性规范。
  W3C 出版的 XPath 1.0 Recommendation。XSLT 样式表中使用的 XPath 表达式语法的权威性规范。
  XSL-List,一个有关 XSLT 所有事物的繁忙邮件列表,它附带有可搜索档案,由 MulberryTech 进行管理。
  www.xslinfo.com,一个很好的网络中央页面,带有到 XSLT 资源的链接,内容包括软件、书籍、教程和其它内容。
  关于作者
  Michael Kay 在 XML 界非常著名,他是 Saxon XSLT 处理器和 Wrox 书籍 XSLT Programmer's Reference 的作者。多年以前,他就获得了博士学位,他的研究领域是数据库技术。自那时起,他设计了 Codasyl 数据库、关系数据库、面向对象数据库和自由文本数据库软件。
  
  在写作时,Michael 还兼了几份工作(并没有休息)。他刚结束了在 ICL(一家英国 IT 服务公司)24 年的工作,并投奔 Software AG 成为体系结构小组的一员,该小组负责掌控未来 XML 产品的方向。
  
  作者选择这张照片来证明他并非总是象他在 Wrox 书籍中所表现得那样严肃。
    

上一页  [1] [2] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台