<%--兼容IE7 必须放在 head 的第一行--%>
独上高楼网站
  • XML基础教程:使用xsl:value-of来计算节点值
  • 使用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>

    < 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

    处理指令

    处理指令的值;不包括< 或>以及处理指令名

    注释

    注释文本,不包括< !--和-->

  • 与本文主题相关的文章