首页 >> 读书频道 >> 电脑 >> 第14章 XSL变换 XSL模板
 
· 用API函数实现文件夹列
· 利用API创建文件目录
· 用API函数遍历文件三
· API实现完美的图片出现
· API实现完美的图片出现
· API实现完美的图片出现
· 第14章 XSL变换
· 实现平面工具栏上
· 用API制作图形窗体
· 本章小结
· VB托盘程序详解中
· 有声样式单
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

第14章 XSL变换 XSL模板


查看有无更新版本

关键字:XML 2006-9-18

 

由xsl:template元素定义的模板规则是XSL样式单的最重要的部分。每个模板规则都是一个xsl:template元素。这些规则将特定的输出与特定的输入相关联。每个xsl:template元素都有一个match特性,用来指定要将此模板应用于输入文档的哪个节点。xsl:template元素的内容是要运用的实际模板。模板可能既包含逐字显示在输出文档中的文本,同时也包含从输入XML文档将数据复制到结果的XSL指令。因为所有的XSL指令都放在xsl命名域中(即它们都是以xsl:开头),所以要区分元素(这些元素就是复制到输出的实际数据)和XSL指令是很容易的。例如,下面为一个应用于输入树形结构根节点的模板:<xsl:template match=”/”><html><head></head><body></body></html></xsl:template>当XSL处理程序读取此输入文档时,它所看到的第一个节点就是根节点。下面的规则与此根节点相匹配,并告诉XSL处理程序发送此文本:<html><head></head><body></body></html>这种文本就是结构整洁的HTML。由于XSL文档本身就是XML文档,所以其内容(包括模板在内)也必须是结构整洁的XML。如果要在XSL样式单中使用上面的规则,并且只在XSL样式单中使用的话,那么输出就只限于上面的六个标记。(实际上,可压缩为四个等价的标记:<html> <head/> <body/> </html>)。这是由于在规则中没有任何指令告诉格式化程序沿树形结构逐级下移,以便寻找与样式单中的模板进一步的匹配。14.3.1 xsl:apply-templates元素要达到根节点以外的地方,就要告诉格式化引擎处理根节点的子节点。一般来说,为了包括子节点中的内容,需递归处理整个XML文档中的节点。可以用来达到此目的的元素就是xsl:apply-templates。把xsl:apply-templates放在输出模板中,就可以告诉格式化程序把与源元素匹配的每个子元素同样式单中的模板相比较。用于匹配节点的模板本身可能包含xsl:apply-templates元素,以便搜索与其子节点的匹配。当格式化引擎处理节点时,此节点是作为整个树形结构来看待的。这是树形结构的优点所在。每个部分都是以处理整体相同的方式来处理。例如,清单14-5就是使用xsl:apply-templates元素来处理子节点的XSL样式单。清单14-5:递归处理根下子节点的XSL样式单<?xml version="1.0"?><xsl:stylesheetxmlns:xsl="http://www.w3.org/XSL/Transform/1.0"><xsl:template match="/"><html><xsl:apply-templates/></html></xsl:template><xsl:template match="PERIODIC_TABLE"><body><xsl:apply-templates/></body></xsl:template><xsl:template match="ATOM">An Atom</xsl:template></xsl:stylesheet>当本样式单应用于清单14-1时,将进行以下处理:1.将根节点与样式单中的所有模板规则进行比较,它与第一个模板规则相匹配。2.写出<html>标记。3.xsl:apply-templates元素使格式化引擎处理子节点。A.将根节点的第一个子节点(xml-stylesheet指令)与模板规则相比较,此子节点与任何一个模板规则都不匹配,所以不产生任何输出。B.将根节点的第二个子节点(根元素PERIODIC_TABLE)与模板规则相比较,此子节点与第二个模板规则相匹配。C.写出<body>标记。D.body元素中的xsl:apply-templates元素使格式化引擎处理PERIODIC_TABLE的子节点。a.将PERIODIC_TABLE元素的第一个子元素(即氢的ATOM元素)与模板规则进行比较,此子元素与第三个模板规则相匹配。b.输出文本An Atom。c.将PERIODIC_TABLE元素的第二个子元素(即氦的ATOM元素)与模板规则进行比较,此子元素与第三个模板规则相匹配。d.输出文本An Atom。E.写出</body>标记。4.写出</html>标记。5.处理完成。最后的结果为:<html><body>An Atom An Atom</body></html>14.3.2 select特性为了用ATOM元素的名称(由其NAME子元素给出)来代替An Atom文本,需要指定模板应用于ATOM元素的NAME子元素。为了选择一组特定的子元素,而不是所有的子元素,可向xsl:apply-templates提供select特性,用来指定要选择的子元素。见下面的例子:<xsl:template match=”ATOM”><xsl:apply-templates select=”NAME”/></xsl:template>select特性使用同一类型的模式作为xsl:template元素的match特性。目前,我们坚持使用简单的元素名称;但本章后面有关匹配和选择模式的部分,将讨论select和match更多的可能用法,如果不存在select特性,那么选择所有的子元素。将上面的规则加到清单14-5的样式单,并应用于清单14-5,其结果如下:<html><head/><body>HydrogenHelium</body></html>

第14章 XSL变换 XSL模板

[ 1 ]
第14章 XSL变换 XSL模板 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑