XSL 样式单文档

 

当输入时,XSL 变换接受以XML 文档表示的树形结构,而输出时,则产生也以XML 文档来表示的新的树形结构。因此,XSL 变换部分也称为树形结构建立部分。输入和输出的内容必须是XML 文档。不能使用XSL 来变换成非XML 格式(如PDFTeXMicrosoft WordPostScriptMIDI 或其他)或从非XML 格式进行变换。可使用XSL XML 变换为一中间格式(如TeXML),然后使用另外的非XSL 软件来将这个中间格式变换成期望的格式。HTML SGML 都是介乎于两者之间的情况,因为它们非常接近于XML。可使用XSL 将符合XML 的结构完整性规则的HTML SGML 文档变换成XML 或者相反。但是,XSL 不能处理在大多数Web 站点上和文档生成系统中遇到的各种各样非结构整洁的HTML SGML 文档。要牢记的首要问题是,XSL 变换语言对于XML XML 的变换是可行的,但对于其他方面则不行。

XSL 文档包含一组模板规则和其他规则。模板规则拥有模式(pattern)以及模板(template),模式用来指定模板规则所适用的树形结构,而模板是用来在与此模式匹配时进行输出。当XSL 处理程序使用XSL 样式单来格式化XML 文档时,它对XML 文档树形结构进行扫描,依次浏览每个子树形结构。当读完XML 文档中的每个树形结构时,处理程序就把它与样式单中每个模板规则的模式进行比较。当处理程序找到与模板规则的模式相匹配的树形结构时,它就输出此规则的模板。这个模板通常包括一些标记、新的数据和从原XML 文档的树形结构中复制来的数据。

XSL 使用XML 来描述这些规则、模板和模式。XSL 文档本身也是xsl:stylesheet 元素。每个模板规则都是xsl:template元素。规则的模式是xsl:template 元素的match 特性值。输出模板是xsl:template 元素的内容。模板中所有的指令都是由一个或另一个XSL 元素来完成的,而这些指令是来完成某种动作,如选择输入树形结构中要包括在输出树形结构的部分。

这些由元素名上的xsl:前缀来标识。没有xsl:前缀的元素为结果树部分。更恰当地说,作为XSL 指令的所有元素都是xsl 命名域的一部分。在那以前,只要了解所有的XSL 元素的名称都是以xsl:开头就可以了。

清单14-2 显示的是一个非常简单的XSL 样式单,它有两个模板规则。第一个模板规则与根元素PFRIODIC_TABLE 相匹配,

它使用html 元素来代替此元素。html 元素的内容是将文档中的其他模板应用于PFRIODIC_TABLE 元素中所获得的结果。

第二个模板与ATOM 元素匹配,它用输出文档中的P 元素代替输入文档中的每个ATOM 元素。xsl:apply-templates 规则将

匹配的源元素的文本插入到输出文档中。因此,P 元素的内容将是包含在相应的ATOM 元素中的文本(但不是标记)。下

面,将更进一步讨论这些元素的精确语法。

清单14-2:有两个模板规则的周期表XSL 样式单

<?xml version="1.0"?>

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">

<xsl:template match="PERIODIC_TABLE">

<html>

<xsl:apply-templates/>

</html>

</xsl:template>

<xsl:template match="ATOM">

<P>

<xsl:apply templates/>

</P>

</xsl:template>

</xsl:stylesheet>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值