• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

XSLT入门篇

1.XSLT的概念

我们首先来澄清一个概念,大家可能听说过XSL(eXtensible Stylesheet Language),XSL和我们这里说的XSLT从狭义上理解是一样的,而按照W3C的标准,XSLT的说法更严格些,因此我们在文章中统一使用 XSLT的称法它们之间具体的关系我们会在下面讲述

1.1 什么是XSLT

XSLT的英文标准名称为 eXtensible Stylesheet Language Transformation根据W3C的规范说明书(http://www.w3.org/TR/xslt),最早设计XSLT的用意是帮助XML文档 (document)转换为其它文档但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:

XSLT是一种用来转换XML文档结构的语言

1.2 为什么要用XSLT

我们已经知道,XML是一种电脑程序间交换原始数据的简单而标准的方法它的成功并不在于它容易被人们书写和阅读,更重要的是,它从根本上解决了应用系统间的信息交换因为XML满足了两个基本的需求:

(1).将数据和表达形式分离就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它

(2).在不同的应用之间传输数据电子商务数据交换的与日俱增使得这种需求越来越紧迫

为 了使数据便于人们的阅读理解,我们需要将信息显示出来或者打印出来,例如将数据变成一个HTML文件,一个PDF文件,甚至是一段声音;同样,为了使数据 适合不同的应用程序,我们必须有能够将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文本文件,一个SQL语句,一个HTTP信息,一定顺序 的数据调用等而XSLT就是我们用来实现这种转换功能的语言将XML转换为HTML,是目前XSLT最主要的功能

1.3 XSLT的历史

想很多其他XML家族成员一样,XSLT是由W3C起草和制定的它的主要发展历程如下:

.1995年由James Clark提议;

.1997年8月正式提案为XSL;

.1998年5月由Norman Walsh完成需求概要;

.1998年8月18日XSL草案发布;

.1999年11月16日正式发布XSL 1.0推荐版本

目前,XSLT仍然在快速的发展中,XSLT1.1的草案已经可以在W3C网站(http://www.w3.org/TR/xslt11)上看到

1.4 什么是XPath

XSL 在转换XML文档时分为明显的两个过程,第一转换文档结构;其次将文档格式化输出这两步可以分离开来并单独处理,因此XSL在发展过程中逐渐分裂为 XSLT(结构转换)和XSL-FO(formatting objects)(格式化输出)两种分支语言,其中XSL-FO的作用就类似CSS在HTML中的作用而我们这里重点讨论的是第一步的转换过程,也就是 XSLT

另外,在学习XML时我们已经知道XML是一个完整的树结构文档在转换XML文档时可能需要处理其中的一部分(节点)数据, 那么如何查找和定位XML文档中的信息呢,XPath就是一种专门用来在XML文档中查找信息的语言XPath隶属XSLT,因此我们通常会将XSLT语 法和XPath语法混在一起说

用一种比较好理解的解释:如果将XML文档看作一个数据库,XPath就是SQL查询语言;如果将XML文档看成DOS目录结构,XPath就是cd,dir等目录操作命令的集合

1.5 XSLT和CSS的比较

CSS同样可以格式化XML文档,那么有了CSS为什么还需要XSLT呢?因为CSS虽然能够很好的控制输出的样式,比如色彩,字体,大小等,但是它有严重的局限性,就是:

(1) CSS不能重新排序文档中的元素;

(2) CSS不能判断和控制哪个元素被显示,哪个不被显示;

(3) CSS不能统计计算元素中的数据;

换句话说,CSS只适合用于输出比较固定的最终文档CSS的优点是简洁,消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多

因此,我们常常将它们结合起来使用
posted @ 2008-10-23 17:31  小不点儿大的由我做主!  阅读(212)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3