xsl


手册简介

[db:手册说明]

手册说明

xsl

XSL可以描述如何来显示XML文档,它的全称是“可扩展样式表语言”。XML 并不适用预先定义的标签,因此它的每个标签的意义都略显生涩。XSL 之于XML,就像CSS之于HTML。

通过为XML写XSL可以使XML显示成不同的格式,使用XSL,可告知XML页面上的文字在网页何处以何种字体显示。XSL基于并扩展了文档风格语义和规范语言(DSSSL)以及层叠样式表版本1(CSS1)标准。

XSL包含了两个部分,一个是XSLT ,用于转换 XML 文档的语言。另一个是XPath,用于在 XML 文档中导航的语言。您也可以通过查阅《XSLT教程》以及《XPath教程》了解更多相关详情。


XSL的用途

XSL 专门用于处理 XML 文档,并且遵循 XML 语法。

XSLT 是一种基于模式匹配的语言。它会查找匹配特定条件的节点,然后应用相应的规则。因此,它不具备大多数编程语言的计算能力。

XSL 不能代替或补充 CSS。也不能用于设置 HTML 的样式。

XSL 不能用于更改 XML 文档的内容或者编辑信息。但是,您可以将 XML 和 XSL 用于需要处理几种不同格式的文档。


XSL应用

一种快速执行XSLT转换的方法,其特征在于通过一个流处理模型来执行XSLT转换,具体步骤如下:

(1)首先通过构造转换树,将XML源文档的结构信息和XSLT转换要求结合起来,其步骤为:构造XML文档类型定义的DTD树T;考察XSLT转换程序L的每一条转换规则r,在T中找到r的匹配节点n;继续考察r的输出模板序列中的每一个元素o,如果o是一个常数字符串,为树T创建一个叶子节点n’,添加一条从n到n’的边;如果o是调用模板命令,从树T中找到o的选中节点n’,同样添加一条从n到n’的边;

(2)从转换树建立流处理模型,它是一个递归过程,其步骤为:对转换树的任一节点n,end(n),start(n)初始值为空串;如果n是叶子节点,则令end(n):=pcdata+end(n);以c1,c2,...,cp表示节点n下面所有来自于DTD树的孩子节点,以d1,d2,...,dq表示节点n下面所有来自于XSLT转换程序的孩子节点,如果d1是一个常数字符串节点,则令start(n):=start(n)+d1,并且设置计数器i为2,否则,设置计数器i为1;当i不大于q的时候,重复以下步骤:假设c是位于从节点n到节点di这条路径上的n的孩子节点,如果从n到c的边没有被星号标记,并且di+1是常数串节点,则令end(c):=end(c)+di+1和i:=i+2,否则令i:=i+1;如果di+1是常数串节点,假设c′是位于从节点n到节点di+2这条路径上的n的孩子节点,则令start(c′):=di+1+start(c′)和i:=i+2,否则令i:=i+1;对每一个孩子节点dj,递归调用以上过程;

(3)扫描XML源文档,通过流处理模型,将一个XSLT转换程序转化成很多个事件处理器;在从头到尾读XML取源文档的过程中会触发很多事件,对每一类事件,都有一个对应的输出片断;最开始的时候,结果文档为空,随着对源文档的扫描过程的进行,相应事件的输出片断被逐渐添加到已产生的结果文档的后面;在扫描过程结束后,用户马上就可以得到最终完整的结果文档;其中,end(n)为元素结束事件的输出片段,start(n)为元素开始事件的输出片段,pcdata为当前叶子节点的PCDATA值。


更新记录

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号