【HTML/XML 8】XSL,可扩展样式表语言
导读:上篇博客说了在XML文档中实现表现形式的一种形式:CSS层叠样式表,本篇博客将接着说明其另一种实现方式XSL,并将分析XSL和CSS之间的 关系。
一、XSL简介
XSL(eXtensible Stylesheet Language,可扩展样式表语言):是为XML文档定义的一种标识语言。简单的XML可以被CSS解释,但是面对复杂的高度结构化的XML数据或者是XML文档,则只能依赖XSL极强的格式化的能力而展现给用户。
XSL是包含了一套元素集的XML语法规范,二改语法规范将被用来把XML文档转换为HTML文档。一个XSL样式表集合了一系列设计规则,以用于将信息从XML文档中提取出来。并将其转换为其他格式,例如:HTML。XSL能使web浏览器直接根据用户的不同需求改变文档的表示法,从而不需要再与服务器进行交互通信。XSL介于CSS和SGML的DSSSL(Document style semantics and
specification Language,文档样式语义和规范语言)之间,DSSSL定义格式化对象的全特征模式,但是由于DSSSL使用框架语法,而且特别复杂,并未得到推广。
可扩展样式表语言包括两个部分:转换语言和格式化语言。每种语言都是一种XML应用,转换语言提供定义规则的元素,如何将XML文档转换为另一个XML文档,转换的文档可以使用源文档的标记和DTD,也可以使用一组完全不同的标记。甚至可能使用XSL的格式化对象定义的标记。
二、XSL的编程思想
对于作为表现对象的XML文档,XSL把它看做是一颗由许多节点组成的树,这棵树称为源树。其中的根元素和子元素都是源树的节点。当设计XSL文件来表现XML文档时,从源树中将相应的数据取出,利用这些数据形成一棵新树,称为结果树。
注意:结果树和源树是相互分离的,对结果树中的数据进行操作并不会影响源树中的数据,XSL正是通过这样的方式实现了XML文档的内容和表现形式彻底分离。
组成的结果树,存放在XSL的模板中,通常使用HTML来制作放置结果树的模板,这个模板称作HTML模板。通过设置HTML标记的style属性来定义需要的样式。
XSL思想:设计者编写XSL文件,实际上是在编写某种格式的模板,这个模板将用来存放XML文档提取出的数据,完成由源树构造结果树的工作。
三、XSL和CSS的比较
3.1,CSS:HTML的样式表语言
HTML使用预先确定的标记,所以这些标记的含义都很好理解。比如<P>元素定义一段,<H1>元素定义一个标题。使用CSS向HTML元素增加显示格式是一个简单的过程,很容易告诉浏览器用某种字体或颜色去显示某个元素,浏览器知道如何显示这些元素。
3.2,XSL:XML的样式表
XML不使用预先确定的标记,因此标记的含义并不能被直接理解。比如<table>可以表示一个HTML表格,也可以表示为一个家具,为了显示XML文档,必须有一个机制来描述如何显示文档。这些机制之一是CSS,但是作为XML文档的首选,是XSL。
3.3,XSL:不仅是一个样式表
XSL包含3个部分:
XSLT:一种用于转换XML文档的语言
XPath:一种用于在XML文档中导航的语言
XSL-FO:一种用于格式化XML文档的语言
四、XSL转换XML格式的方式
4.1,客户端
XML文档和相关的样式单都是用户客户端的,然后客户端程序按照样式单中指定的格式变换文档,并将它呈现给用户。
4.2,服务端
服务器将XSL样式单应用于XML文档,以便此文档能够变换成其他格式(通常为HTML),并将变换后的文档发送到客户端程序。
4.3,通过HTML
将原XML文档变换成其他格式后,才把此文档放置在服务器上,服务器和客户程序只处理变换后的文档。
4.4,综述
这三种方法,虽然都使用相同的XML文档和XSL样式,但每一种都使用不同的软件。将XML文档发送到Internet explorer的普通web服务器使用第一种方法。使用IBM alphawork的XML功能将文档应用于与applet兼容的web浏览器使用第二种方法。使用命令行XT程序来将XML文档变换成HTML文档,然后将HTML文档放置在web服务器上,采用的是第三种方法。
注:这三种方法,都使用相同的XSL语言。
五、总结
对于XSL也从整体上了解了,但是CSS之前用过,而这个XSL文档,也就是在之前的例子中,写过一次,还不是很熟练,还需要多加练习。
【HTML/XML 8】XSL,可扩展样式表语言的更多相关文章
- XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类
XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...
- XML XSD XSL区别与联系
XML: XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准 ...
- XML、XSL、XSLT、DTD、XSD的区别
前言: 在众神的努力之下,js已经可以跨出浏览器走向不同的领域了 也因为这个,对前端工程师的要求也不仅仅是会写写h5页面做交互.前端涉及的领域越来越广,对开发人员对素质能力要求越高. 以前因设备不同导 ...
- 使用 XSLT 作为 HTML 的样式表
简介 当听到样式表这个词时,您可能会想到 CSS 样式表.XSLT 样式表通常用于 XML 转换,比如在 Web 服务之间映射数据.因为 XSLT 非常适合此用途,所以创建了顶层元素 <styl ...
- WebService错误:使用 XSL 样式表无法查看 XML 输入
在浏览器中输入URL: 'http://localhost/test.aspx' 出现下面错误提示信息: 无法显示 XML 页. 使用 XSL 样式表无法查看 XML 输入.请更正错误然后单击 刷新 ...
- 微软BI 之SSIS 系列 - XML Task 中XSLT 样式表转换错误记录
开篇介绍 此文章专门记录 XSLT 样式表转换过程中的语法问题 错误一 值与属性的倒置 修改了几次样式表,但还是一如既往的报错,报错信息如下: [XML Task] Error: An error o ...
- htm,html,xhtml,xml,xsl,dhtml,shtm和shtml的区分
介绍一下htm,html,xhtml,xml,shtml的区分,以下内容来自百度后的知识整理. HTML和htm: HTML(Hypertext Markup Language)超文本传输语言,是ww ...
- XML通过XSL格式化的那点事(XML到自定义节点折叠显示)
引言 有时我们想看下系统生成的XML文件(如XML格式的Project文件),如果文件结构简单,我们浏览器看起来还比较方便,但是随着XML schema复杂后就变得让人头疼啦,单独写一个程序去做展现又 ...
- CSS样式----图文详解:css样式表和选择器
主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS三种扩展选择器:组合选择器.后代选择 ...
随机推荐
- (WPF, MVVM) Event 处理
WPF的有些UI元素有Command属性可以直接实现绑定,如Button 但是很多Event的触发如何绑定到ViewModel中的Command呢? 答案就是使用EventTrigger可以实现. 继 ...
- Hbase伪分布式
其实我就是要让数据存储在hdfs上而已........ 多配置点东西就好了,在hbase-site.xml中加入: <configuration> <property> < ...
- BPEL_Oracle BPEL新一代工作流介绍(概念)
2014-11-02 Created By BaoXinjian
- easy dp
1.将一堆正整数分为2组,要求2组的和相差最小. //File Name: nod1007.cpp //Author: long //Mail: 736726758@qq.com //Created ...
- block作为类的属性时用copy
1. block作为类的属性时用copy Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的 <栈 :由系统维护的局 ...
- 使用系统UITabbarItem自定义图片显示原本颜色和自定义文字颜色
...... ThirdViewController *thirdVC = [[ThirdViewControlleralloc]initWithTitle:@"搜索信息"]; / ...
- 新建的表如果还没有数据,用exp导的时候会忽略
源地址:http://www.07net01.com/2015/07/884873.html
- 通过批处理(bat)命令创建mysql数据库及用户等
1.建立数据库文件:mysqlCreatDB.sql create database Mydb 2.为用户赋予权限文件:grantUser.sql grant select,insert,update ...
- Lua 架构 The Lua Architecture
转载自:http://magicpanda.net/2010/10/lua%E6%9E%B6%E6%9E%84%E6%96%87%E6%A1%A3/ Lua架构文档(翻译) 十 102010 前段时间 ...
- (整理).net实现条形码与二维码
本文由来源网络的知识点组合而成,感谢分享的作者,文章结尾处给出查询资料连接. 条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常见的条形码是 ...