开发者社区> 挨踢人生> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

深入XSLT第一章序言—什么是XSL

简介: 序言—什么是XSL XSL是XML的样式表语言CSS:HTML的样式表语言   由于HTML使用预先确定的标记,因此这些标记的含义都很好理解:元素定义一段,元素定义一个标题。
+关注继续查看

序言什么是XSL

XSLXML的样式表语言
CSSHTML的样式表语言 
  由于HTML使用预先确定的标记,因此这些标记的含义都很好理解:<p>元素定义一段,<h1>元素定义一个标题。浏览器知 道如何显示这些元素。使用CSSHTML元素增加显示格式是一个简单的过程:很容易告诉浏览器用某种特殊字体或颜色来显示各个元素,浏览器也很容易理 解。 

XSLXML的样式表 
  由于XML不使用预先确定的标记(我们可以根据需要使用任意标记),因此标记的含义并不能被直接理解:<table>可以表示一个 HTML表格,也可以表示一件家具。由于XML的特性,浏览器不知道如何显示一个XML文档。为了显示XML文档,必须要有一个机制来描述如何显示文档。 这些机制之一是CSS,但是XSL(可扩展的样式表语言)是XML的首选样式表语言,它要比HTML使用的CSS复杂得多。 

XSL:不仅仅是一个样式表 
  XSL包含3部分:一个转换XML文档的方法; 一个定义XML部分和模式的方法;一个格式化XML文档的方法。 
  如果对此还不能理解,那么可以先将XSL理解成:一种将XML转换成HTML的语言,一种可以过滤和分类XML数据的语言,一种可以对一个XML文档 的部分进行寻址的语言,一种可以基于数据值格式化XML数据的语言(如用红色显示负数),一种向不同设备输出XML数据的语言(如屏幕、纸或声音)。 

XSL是一种WWW标准 
  XSLWWW协会推荐的一种标准。这种语言的前两部分在199911月已经成为W3C推荐标准。2000年,包括XSL格式化部分的完整XSL推荐标准成为W3C的候选标准。 

XSL语言 
  XSL实际上包含三种语言,其中最重要的是XSLTXSL是三种语言的结合体上面提到,XSL实际上包含三种语言,具体是:XSLT是一种转换XML的语言;XPath是一种定义XML部分或模式的语言;XSL格式化对象是一种定义XML显示方式的语言。 
 XSLT是一种用来将XML文档转换成其他类型文档或其它XML文档的语言。XPath是一种对XML文档的部分进行寻址的语言。设计XPath是要让XSLT使用的。格式化是将一个XSL转换的结果变成适于读者或听众使用的输出格式的过程。 
 19991116日,XSLTXPath被作为两个单独的W3C推荐标准发布。目前对于XSL格式化对象还没有单独的W3C文档,但是在XSL1.0推荐标准内有一个描述。 

XSLTXSL转换 
  XSLTXSL标准中最重要的部分,它用于将一个XML文档转换成另一个XML文档或另一种类型的文档,也就是将一个XML文档转换成浏览器所能识别的一种格式。这其中之一就是HTML。通常,XSLT将每个XML元素都转换成一个HTML元素。 
  XSLT还可以向输出文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行分类,测试并确定显示哪些元素等等。 
  描述这种转换过程的一个常用说法是:XSLXSLT将一个XML来源树转换成另一个XML结果树(或将一个XML源文档转换成另一个XML结果文档)。

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

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

-------------------------------------------------------- 

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

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

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

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

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

因此,我们常常将它们结合起来使用,比如在服务器端用XSLT处理文档,在客户端用CSS来控制显示。可以减少响应时间。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
什么是服务器的SSL PSE
什么是服务器的SSL PSE
56 0
[译]什么是蒙特卡洛树搜索
本文讲的是[译]什么是蒙特卡洛树搜索,蒙特卡洛树搜索(MCTS)是一种在人工智能问题中进行决策优化的方法,通常是对于那些在组合游戏中需要移动规划的部分。蒙特卡洛树搜索将随机模拟的通用性与树搜索的准确性进行了结合。
3193 0
ASP.NET 复杂JSON字符串反序列化操作
在MIS系统开发中,有时需要在主页顶部显示天气信息,本篇经验将和大家介绍一下实现过程。 1、一个可以获取各个城市天气预报情况的网站: http://wthrcdn.
831 0
《Java 2 图形设计卷Ⅱ- SWING》第4章 JComponent类
第4章 JComponent类   JComponent类是所有Swing轻量组件的基类,因此,我们单独用一章对它进行讨论。JComponent对Swing的意义就如同java.awt.Component对AWT的意义一样,它们都是它们各自框架组件的基类。
1163 0
SSL/TLS 协议详解
原文地址:http://www.cnblogs.com/adforce/archive/2012/11/27/2790937.html SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。
1253 0
+关注
挨踢人生
java,架构相关技术专家
168
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载