xslt中的第一个子节点名称

时间:2012-07-17 16:45:54

标签: xslt

我想知道如何在xslt中找到特定节点的第一个子节点名称。

我有一个xml:

 <name>
    <body>
      <para>
        <text> some text</text>
      </para>
    </body>
  </name>

我可以使用body / node()[1] / local-name()?

获取名称
<xsl:template match="name">
<name> 
<xsl:variable name="firstchild" select="body/node()[1]/local-name()">
                        </xsl:variable>
 <xsl:value-of select="$firstchild" />
 </name>
</xsl:template>

输出应为

 <name>
    para
  </name> 

1 个答案:

答案 0 :(得分:6)

尝试这样的事情......

<xsl:template match="name">
  <name>
  <xsl:variable name="firstchild" select="name(body/*[1])"/>
  <xsl:value-of select="$firstchild" />
  </name>
</xsl:template>

或者,如果您实际上不需要变量,只需...

<xsl:template match="name">
  <name>
  <xsl:value-of select="name(body/*[1])" />
  </name>
</xsl:template>

以下是第二个示例的xmlplayground ...在输出窗口中查看<name>para</name>点击View Source