• 热门标签

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

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

round()将数值四舍五入成最接近的整数
sum()返回其参数的和
例如下面的模板规则将原子量(各同位素在自然界分布的中子数与质子数之和的加权平均数)减去原子序数(质子数),计
算出原子中的中子数,并四舍五入成最接近的整数:
<xsl:template match="ATOM">
<P>
XML 实用大全
第 492 页
<xsl:value-of select="NAME"/>
<xsl:value-of
select="round(ATOMIC_WEIGHT – ATOMIC_NUMBER)"/>
</P>
</xsl:template>
下面的规则将所有的原子量相加,然后除以原子的个数,从而计算出表中所有原子的平均原子量:
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<BODY>
<H1>Average Atomic Weight</H1>
<xsl:value-of
select="sum(from-descendants(ATOMIC_WEIGHT))
div count(from-descendants(ATOMIC_WEIGHT))"/>
</BODY>
</HTML>
</xsl:template>
14.7.2.4 字符串
字符串是Unicode 字符序列。按照下面的准则,使用string()函数,就可以将其他数据类型转换成字符串类型:
• 节点集合转换的结果是将集合中的节点值连接在一起。根据表14-1 所给出的规则,由xsl:value-of 元素计算出集
合中的节点值。
• 结果树形片段(result tree fragment)在转换时,很像是一个元素,并取此假想的元素值。而此假想的元素值是根
据表14-1 所给出的规则,由xsl:value-of 元素计算出的。
• 数字转换成欧洲风格的数字字符串,如“-12”或“3.1415292”。
• 布尔值的false 转换成英语单词的“false”;布尔值的true 转换成英语单词的“ true”。
除了string( )之外,XSL 还有七个对字符进行操作的函数。现总结于表14-5 中。
表14-5 对字符串进行操作的函数
XML 实用大全
第 493 页
函数 返回值类型 返回值
starts-with(main_string, prefix_string) 布尔
如果main_string 以prefix_string 开始,则为true;
否则为false
Contains(containing_string,
contained_string)
布尔
如果contained_string 参数是containing_string
参数的一部分,则为true;否则为false
Substring-before(string, marker-string) 字符串
从string 的第一个字符直到第一次出现
marker-string 止(但不包括)的部分
Substring-after(string, marker-string) 字符串
从第一次出现marker-string 之后到string 最后一
个字符为止的部分
Normalize(string) 字符串
截去string 首尾空白后的部分,并且一连串的空白
以一个空格代替;如果忽略string 参数,则将上下
文节点的字符串值变成为正常字符串
Translate(string, replaced_text,
replacement_text)
字符串
返回string 中由replacement_text 中的相应字符来
代替replaced_text 中的字符后的结果
concat(string1, string2, ) 字符串
将以参数形式传递的所有字符串连接起来,并返回这
种连接后的字符串,其顺序为传递时的顺序
format-number(number, format-string,
locale-string)
字符串
返回number 参数格式化后的字符串形式。格式化是
按照由locale-string 参数指定的位置中的
format-string 参数所指定的格式进行的。其工作方
式就好像由Java 1.1 中的java.text.DecimalFormat
类所进行的格式化一样(请参考
http://java.sun.com/
products/jdk/1.1/docs/api/java.text.
DecimalFormat.html)
14.7.2.5 结果树形片段
结果树形片段是XML 文档的一部分,而不是一个完整的节点或节点集合。例如,使用带有指向元素中间的URI 的doc()函数,
其结果可能产生一结果树形片段。有些扩展函数(专门用于特定的XSL 实现或安装的函数)也可以返回结果树形片段。
由于结果树形片段不是结构整洁的XML,所以不能用它们来做什么事。实际上,唯一允许的操作是分别使用string()和
boolean()函数,来将它们转换成字符串值或布尔值。
XML 实用大全
第 494 页
14.8 缺省的模板规则
在XSL 样式单中,十分小心地映射XML 文档的层次,是很困难的。如果文档不按照固定的、可预料的顺序(如周期表)排列,
而是正像许多Web 网页那样随意地将元素放在一起,这种情况就很难映射XML 文档的层次。在这些情况下,应有通用的规则,
来查找元素并将模板应用于此元素,而不必考虑此元素究竟出现在源文档的何处。
为了使此过程更容易,XSL 定义两个缺省的模板规则,在所有的样式单中都隐性地包括这两个规则。第一个缺省规则将模板
应用于所有元素的子元素,以递归的形式,降序排列元素的结构树。这种方式可确保应用于元素的所有模板规则都能够被说
明。第二个缺省规则应用于下一个节点,将这些节点的值复制到输出流中。这两个规则共同使用,表示即使是没有任何元素
的空XSL 样式单,仍将产生把输入的XML 文档的原始字符数据作为输出内容的结果。
14.8.1 元素的缺省规则
第一个缺省规则应用于任何类型的元素节点或根节点:
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
*|/ 是“任何元素的节点或根节点”的缩写形式。本规则的目的,就是要确保所有的元素即使没有受到隐性规则的影响,也
都按递归的方式处理。也就是说,除非其他的规则覆盖了本规则(特别是对根元素就是如此),否则所有的元素节点都要处
理。
但是,一旦存在任何父元素的隐性规则,那么对于子元素,除非父元素的模板规则有xsl:apply-templates 子元素,否则本
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(139)