你的分享就是我们的动力 ---﹥

XML——XSL 样式单文档

时间:2011-10-09 22:00来源:www.chengxuyuans.com 点击:

当输入时,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>

 

转载请注明出处: 程序员之家  http://www.sunxin.org

转载注明地址:http://www.chengxuyuans.com/xml/22582.html

推荐文章