• 热门标签

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

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

素的子元素中选择,并作为表的单元格输出。(如果有多个期待的元素��例如,三个NAME 元素��那么,只选
择第一个。)
from-children()轴不允许做单独使用元素名不能做的任何事情。实际上,select="ATOMIC_WEIGHT"只是select =
"from-children (ATOMIC_WEIGHT)”的缩写形式。但是,其他轴更令人感兴趣。
在匹配模式时引用父元素是不合法的,但在选择表达式中引用则是合法。要引用父元素,可使用from-parent()轴。例如,
下面的规则输出具有BOILING_POINT 子元素的ATOM 元素的值:
<xsl:template match="ATOM/BOILING_POINT">
XML 实用大全
第 478 页
<P><xsl:value-of select="from-parent(ATOM)"/></P>
</xsl:template>
这里匹配的是BOILING_POINT 子元素,但输出的是ATOM 父元素。
有些放射性原子(如钋)其半衰期是如此之短,以致无法测量重要的性质(如沸点和熔点)。所以并非所有的ATOM 元素都
必须有BOILING_POINT 子元素。上面的规则可用来只输出实际上有沸点的元素。清单14-10 是此例的扩展,它匹配
BOILING_POINT 元素,但实际上使用from-parent(ATOM)输出ATOM 父元素。
清单14-10:只输出有已知熔点的元素的样式单
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="PERIODIC_TABLE"/>
</body>
</html>
</xsl:template>
<xsl:template match="PERIODIC_TABLE">
<hl>Elements with known Melting Points</hl>
<xsl:apply-templates select="//MELTING_POINT"/>
</xsl:template>
<xsl:template match="MELTING_POINT">
<P>
<xsl:value-of select="from-parent(ATOM)"/>
</P>
XML 实用大全
第 479 页
</xsl:template>
</xsl:stylesheet>
偶尔,可能需要选择给定类型元素的最近的祖先。使用from-ancestors()就可以做到这一点。例如,下面的规则插入最近
的PERIODIC_TABLE 元素(包含匹配的SYMBOL 元素)的值。
<xsl:template match="SYMBOL">
<xsl:value-of select="from-ancestors(PERIODIC_TABLE)"/>
</xsl:template>
from-ancestors-or-self()函数的作用与from-ancestors()函数相似,所不同的是,如果当前节点与参数类型匹配,那么
它的返回值为其本身,而不是真正的祖先。例如,下面的规则匹配所有元素。如果匹配的元素是PERIODIC_TABLE,那么在
xsl:value-of 中选择的正是PERIODIC_TABLE。
<xsl:template match="*">
<xsl:value-of select="from-ancestors-or-self(PERIODIC_TABLE)"/>
</xsl:template>
14.7.1.1 节点类型
from-axis()函数的参数,除了可以使用节点名称和通配符之外,还可以是下列四个节点类型函数之一:
• comment()
• text()
• pi()
• node()
comment()节点类型选择注释节点。text()节点类型选择文本节点。pi()节点类型选择处理指令节点,而node()节点类型选
择任何类型的节点(*通配符只选择元素节点)。pi()节点类型还有一个可选的参数,用来指定要选择的处理指令的名称。
例如,下面的规则同时使用带有node()节点类型的from-self(),将匹配的ATOM 元素封装在P 元素中:
<xsl:template match="ATOM">
<P><xsl:value-of select="from-self(node())"/></P>
</xsl:template>
这里,选择from-self(node())与选择ATOM 是不同的。下面的这个规则获取ATOM 元素的ATOM 子元素的值。此值不是匹配
的ATOM 元素的值,而是匹配ATOM 元素的一个子元素的另一个ATOM 元素值:
<xsl:template match="ATOM">
XML 实用大全
第 480 页
<P><xsl:value of select="ATOM"/></P>
</xsl:template>
14.7.1.2 层次操作符
可以使用/和//操作符来将选择表达式串联在一起。例如,清单14-11 只将有熔点的那些元素的元素名、原子序数和熔点打
印成表。要实现此目的,选择MELTING_POINT 元素的父元素,然后使用select="from-parent(*)/from-children(NAME)"来
查找父元素的NAME 和ATOMIC_NUMBER 子元素。
清单14-11:熔点与原子序数表
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="/PERIODIC_TABLE">
<html>
<body>
<hl>Atomic Number vs. Melting Point</hl>
<table>
<th>Element</th>
<th>Atomic Number</th>
<th>Melting Point</th>
<xsl:apply-templates select "from-children(ATOM)"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="ATOM">
<xsl:apply-templates
XML 实用大全
第 481 页
select="from-children(MELTING_POINT)"/>
</xsl:template>
<xsl:template match="MELTING_POINT">
<tr>
<td>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(135)