不知道node()在这里做了什么

时间:2013-11-13 11:10:11

标签: xslt

这是更长的XSLT的一部分,我必须评论。有谁知道,这里发生了什么,尤其是select-“node()”的值?

<xsl:template match="type">                                                 
    <xsl:element name="attribute">                                          
        <xsl:attribute name="NAME">type</xsl:attribute>                     
        <xsl:attribute name="VALUE"><xsl:value-of select="node()"/>
    </xsl:element>
</xsl:template>

谢谢! :)

2 个答案:

答案 0 :(得分:1)

xsl:value-of总是创建一个文本节点,select="node()"是一个文本节点,其中包含上下文节点的第一个子节点的字符串值(模板中的type元素)在XSLT 1.0中,或者与XSLT 2.0中所有子节点的字符串值串联。见http://www.w3.org/TR/xpath/#node-tests

答案 1 :(得分:0)

这一行

<xsl:attribute name="VALUE"><xsl:value-of select="node()"/>

选择名为“type”的XML元素的内容,并将其作为名为“attribute”的元素名为“VALUE”的属性的属性值插入。

您可能想重新考虑一下您的命名约定: - )。