• 热门标签

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

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

<xsl:template match="pi( xml-stylesheet )">
<xsl:pi name="xml-stylesheet">
<xsl:value-of select="."/>
</xsl:pi>
</xsl:template/>
事实上,区分根元素和根节点的主要原因之一就是,为了读取和处理序言中的处理指令。尽管xml-stylesheet 处理指令使
用“名称=值”这样的句法,但XSL 并不把它们当做特性看待,这是因为处理指令不是元素。处理指令的值只是跟在其名称
后面的空格和结束符?>之间的所有内容。
用来施加模板的缺省规则并不匹配处理指令。因此,遇到xml-stylesheet 处理指令时,如果要使缺省规则起作用,需要包
括xsl:apply-templates 元素,此元素在适当的地方匹配缺省规则。例如,下面这个用于根节点的模板确实将模板应用于处
理指令:
<xsl:template match="/">
<xsl:apply-templates select="pi()"/>
<xsl:apply-templates select="*"/>
</xsl:template>
14.6.9 用text()来匹配文本节点
尽管文本节点的值包括在选择的元素值部分中,但它们作为节点通常被忽视。但是,text()操作符确实能够明确选择一个元
素的文本子元素。尽管这种操作符有圆括号,但不需要任何参数。例如:
<xsl:template match="SYMBOL">
<xsl:value-of select="text()"/>
</xsl:template>
此操作符存在的主要原因是为了用于缺省规则。无论作者是否指定缺省规则,XSL 处理程序必须提供下列的缺省规则:
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
XML 实用大全
第 475 页
这意味着无论何时将模板应用于文本节点,就会输出此节点的文本。如果并不需要这种缺省行为,可以将其推翻。例如,在
样式单中,包括下列空模板规则,将会阻止输出文本节点,除非另外的规则明确地匹配。
<xsl:template rnatch="text()">
</xsl:template>
14.6.10 使用“或”操作符|
竖线(|)允许一条模板规则匹配多种模式。如果节点与某种模式相匹配,则此节点将激活该模板。例如,下面模板规则与
ATOMIC_NUMBER 和ATOMIC_WEIGHT 元素都匹配:
<xsl:template match=”ATOMIC_NUMBER|ATOMIC_WEIGHT”>
<B><xsl:apply-templates/></B>
</xsl:template>
也可以在|两边加入空格,这样使代码更清晰。例如:
<xsl:template match=”ATOMIC_NUMBER | ATOMIC_WEIGHT”>
<B><xsl:apply-templates/></B>
</xsl:template>
还可以顺次使用两个以上的模式。例如,下面的模板规则作用于A
XML 实用大全
第 476 页
14.7 选择节点的表达式
在xsl:apply-templates、xsl: value-of、xsl:for-each、xsl:copy-of 和xsl:sort 中,可使用select 特性来精确指定对
哪个节点进行操作。此特性值即为表达式(expression)。表达式是前节讨论的匹配模式的超集。也就是说,所有的匹配模
式都是选择表达式,但并非所有的选择表达式都是匹配模式。让我们来回顾一下,匹配模式能够使用元素名、子元素、后代
以及特性来匹配节点,除此之外,还可以对这些项目进行简单的测试。选择表达式可以使用所有的这些条件来选择节点,而
且还可以通过参考父元素、同属元素来选择节点,以及通过更加复杂的测试来选择节点。此外,表达式并不局限于只生成一
组节点列表,而且还产生布尔值、数值和字符串。
14.7.1 节点轴
表达式并不局限于指定当前节点的子节点和后代节点。XSL 提供许多轴(axe),使用这些轴可以从相对于当前节点(通常
为模板匹配的节点)的树形结构的不同部分进行选择。表14-2 概述了这些轴及其含义。
表14-2 表达式的轴
轴 选自于
from-ancestors() 当前节点的父节点、当前节点的父节点的父节点、
当前节点的父节点的父节点的父节点,依次类推至
根节点
from-ancestors-or-self() 当前节点的后代以及当前节点本身
from-attributes() 当前节点的特性
from-children() 当前节点的直系子节点
from-descendants() 当前节点的子节点、当前节点的子节点的子节点,
依次类推
from-descendants-or-self() 当前节点本身及其后代节点
from-following() 起始于当前节点末尾之后的所有节点
from-following-siblings() 起始于当前节点末尾之后并且与当前节点具有同一
个父节点的所有节点
from-parent() 当前节点的单一父节点
from-preceding() 当前节点开始之前开始的所有节点
from-preceding- siblings() 当前节点开始之前开始的所有节点并且与当前节点
具有同一个父节点的所有节点
XML 实用大全
第 477 页
from-self() 当前节点
from-following 和from-preceding 轴不可靠,可能不会包括在XSL 的最终发布版中。如果包括在XSL 的最终发布
版中,其准确的含义可能会改变。
这些轴的功能是选择表14-2 第二列中列出的节点。圆括号中包括要进一步对此节点列表筛选的选择表达式。例如,可能包
括由下列模板规则选择的元素名称:
<xsl:template match="ATOM">
<tr>
<td>
<xsl:value-of select="from-children(NAME)"/)
</td>
<td>
<xsl:value-of select="from-children(ATOMIC_NUMBER)"/>
</td>
<td>
<xsl:value-of select="from-children(ATOMIC_WEIGHT)"/>
</td>
</tr>
</xsl:template>
此模板规则匹配ATOM 元素。当ATOM 元素匹配时,NAME 元素、ATOMIC_NUMBER 元素和ATOMIC_WEIGHT 都从此匹配的ATOM 元
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(134)