• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

<xsl:template match="ATOM">
An Atom
</xsl:template>
</xsl:stylesheet>
当本样式单应用于清单14-1 时,将进行以下处理:
1.将根节点与样式单中的所有模板规则进行比较,它与第一个模板规则相匹配。
2.写出<html>标记。
XML 实用大全
第 458 页
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>
XML 实用大全
第 459 页
select 特性使用同一类型的模式作为xsl:template 元素的match 特性。目前,我们坚持使用简单的元素名称;但本章后面
有关匹配和选择模式的部分,将讨论select 和match 更多的可能用法,如果不存在select 特性,那么选择所有的子元素。
将上面的规则加到清单14-5 的样式单,并应用于清单14-5,其结果如下:
<html><head/><body>
Hydrogen
Helium
</body></html>
XML 实用大全
第 460 页
14.4 使用xsl:value-of 来计算节点值
xsl:value-of 元素把输入文档中的节点值复制到输出文档中。xsl:value-of 元素的select 特性指定正在获取的是哪个节
点值。
例如,假设要将文字An Atom 代替为由NAME 子元素内容给出的ATOM 元素的名称,可用<xsl:value-of select="NAME"/>代
替An Atom,如下所示:
<xsl:template match="ATOM">
<xsl:value of select="NAME"/>
</xsl:template>
然后,当将样式单应用于清单14-1 时,产生如下文本:
<html><head/><body>
Hydrogen
Helium
</body></html>
选择其值的项目(本例中的NAME 元素)是与源节点有关的。源节点是由模板来匹配的项目(本例中的特指ATOM 元素)。因
此,当氢的ATOM 与<xsl:template match= "ATOM">相匹配,氢的ATOM 的NAME 元素就由xsl:value-of 选定了。当氦的ATOM
与<xsl:template match= "ATOM">相匹配时,氦的ATOM 的NAME 元素就由xsl:value-of 选定了。
节点的值总是字符串,有时可能为空字符串。此字符串的精确内容由节点的类型而定。最普通的节点类型为元素,元素节点
的值特别简单,就是在元素的开始标记和结束标记之间的所有可析字符数据(但不是标记!)。例如,清单14-1 中的第一
个ATOM 元素如下所示:
<ATOM STATE="GAS">
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>l</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>1.00794</ATOMIC_WEIGHT>
<OXIDATION_STATES>1</OXIDATION_STATES>
<BOILING_POINT UNITS="Kelvin">20.28</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">13.81</MELTING_POINT>
XML 实用大全
第 461 页
<DENSITY UNITS="grams/cubic centimeter"><!- At 300K ->
0.0899
</DENSITY>
</ATOM>
元素的值显示如下:
Hydrogen
H
1
1.00794
1
20.28
13.81
0.0899
我通过删除所有的标记和注释后计算出了这些值。包括空格在内的其他一切内容都完整无缺地保留着。其他六个节点类型的
值也可以类似的非常明显的方式加以计算。表14-1 总结了这些值的结果。
表14-1 节点值
节点类型 值
根节点 根元素的值
元素 包括在元素中的所有可析的字符数据(包括元素的任何后代中的字符数据)
文本 节点的文本;实际上为节点本身
特性 标准化的特性值(详细说明见XML 1.0 推荐的第3.3.3 节);主要为实体还
原后的特性值,截去前导和后随的空格;不包括特性名、等号或引号
命名域 用于命名域的URL
处理指令 处理指令的值;不包括<?或?>以及处理指令名
注释 注释文本,不包括<!--和-—>
XML 实用大全
第 462 页
XML 实用大全
第 463 页
14.5 使用xsl:for-each 处理多个元素
xsl:value-of 元素只用于能够不含糊地确定要获取哪个节点值的上下文中。如果有多个可能项可供选择,那么只选择第一
项。例如,由于普通的PERIODIC_TABLE 元素包含一个以上的ATOM,所以下列的规则较差:
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(130)