• 热门标签

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

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

可能有任何判断值。但是,大于1 的值则是不常见到的。
例如,下面的模板规则通过测试元素的位置是否等于1,来决定将此规则应用于周期表中第一个ATOM 元素,而不是后续元
素。
<xsl:template match="PERIODIC_TABLE/ATOM[position()=l]">
<xsl:value-of select="."/>
</xsl:template>
下面的模板规则通过测试元素的恢檬欠翊笥?,来将此规则应用于非PERIODIC_TABLE 第一个子元素的所有ATOM 元素:
<xsl:template match="PERIODIC_TABLE/ATOM[position()>1]">
<xsl:value-of select="."/>
</xsl:template>
关键字and 和or 根据正常的逻辑规则,将两个布尔表达式进行逻辑组合。例如,假设要将模板应用于ATOMIC_NUMBER 元素,
它既不是其父元素的第一个子元素,也不是其父元素的最后一个子元素;也就是说,它就是父元素本身。下面的模板规则使
用and 来完成此项工作:
<xsl:template
match="ATOMIC_NUMBER[position()=l and position()=last()]">
<xsl:value of select="."/>
XML 实用大全
第 489 页
</xsl:template>
下面的模板规则通过匹配位置是1 还是最后一个,应用于其父元素中的第一个和最后一个ATOM 元素:
<xsl:template match="ATOM[position()=l or positiono=last()]">
<xsl:value-of select="."/>
</xsl:template>
这是逻辑上的“或”,所以如果两个条件都为真,它也将匹配。也就是说,它将既与其父元素的第一个子元素ATOM 元素进
行匹配,也与其父元素的最后一个子元素ATOM 元素进行匹配。
在XSL 中没有not 关键字,但有not()函数。将操作放在not()括号中,可实现对操作的取反。例如,下面的模板规则选择
除其父元素的第一个子元素外的所有ATOM 元素:
<xsl:template match="ATOM[not(position()=l)]">
<xsl:value-of select="."/>
</xsl:template>
下面的模板规则选择除其父元素的第一个和最后一个ATOM 子元素外的所有ATOM 元素:
<xsl:template match =
"ATOM[not(position()=l or position()=last())]">
<xsl:value of select="."/>
</xsl:template>
不存在“异或”操作符。但巧妙地使用not()、and 和or 可以形成“异或”效果。例如,下面的规则要么选择第一个子元素
的ATOM 元素,要么选择最后一个子元素的ATOM 元素,但不会同时选择第一个和最后一个子元素的ATOM 元素。
<xsl:template
match="ATOM[(position()=l or position()=last())
and not(position()=l and position()=last())]">
<xsl:value-of select="."/>
</xsl:template>
下列还有三个函数返回布尔值:
• true()总是返回true
XML 实用大全
第 490 页
• false()总是返回false
• lang(code)如果当前节点的语言(由xml:lang 特性给出)与code 参数相同,则返回true
14.7.2.3 数值
XSL 的数值为64 位IEEE 双精度浮点数。看起来像整数数值(如42 或-7000)也是以双精度保存的。非数字值(如字符串和
布尔值)根据结果可转化为数字,或使用下面的规则由数值函数将非数字值转化为数字:
• 如果为true,布尔值为1;如果为false,则为0。
• 字符串去首尾空白;然后按要求转化成数字;例如,字符串“12”转化为数字12。如果字符串无法作为数字表示,
那么就转换为0。
• 节点集合和结果片段转换成字符串,然后将此字符串转换成数字。
例如,下面的规则只输出自然界不存在的反铀(trans-uranium)元素以及原子序数大于92(铀原子序数)的元素。于是,
ATOMIC_NUMBER 产生的节点集合被隐式地转变成当前ATOMIC_NUMBER 节点的字符串值。
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<HEAD><TITLE>The TransUranium Elements</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="ATOM[ATOMIC_NUMBER>92]"/>
</BODY>
</HTML>
</xsl:template>
XSL 提供了四个标准的算术运算符:
• + 加法
• - 减法
• * 乘法
• div 除法(最通用的 / 在XSL 中已用于其他目的)
例如,<xsl:value-of select="2+2"/>将字符串“4”插入到输出文档中。这些运算更常用作测试。例如,下面的规则选择
原子量大于原子序数两倍的元素:
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<BODY>
XML 实用大全
第 491 页
<Hl>High Atomic Weight to Atomic Number Ratios</Hl>
<xsl:apply-templates
select="ATOM[ATOMIC_WEIGHT > 2 * ATOMIC_NUMBER]"/>
</BODY>
</HTML>
</xsl:template>
下面的模板实际上打印原子量与原子序数的比值:
<xsl:template match="ATOM">
<P>
<xsl:value-of select="NAME"/>
<xsl:value-of select="ATOMIC_WEIGHT div ATOMIC_NUMBER"/>
</P>
</xsl:template>
XSL 还提供两个不常用的二进制运算符:
• mod:用于对两个数求余
• quo:用于两个数相除,然后截去小数部分,形成一个整数
XSL 还有对数字进行操作的四个函数:
floor()返回比此值小的最大整数
ceiling()返回比此值大的最小整数
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(138)