xslt中的第一个子节点名称

ati*_*tif 5 xslt

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

我有一个xml:

 <name>
    <body>
      <para>
        <text> some text</text>
      </para>
    </body>
  </name>
Run Code Online (Sandbox Code Playgroud)

我可以使用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>
Run Code Online (Sandbox Code Playgroud)

输出应该是

 <name>
    para
  </name> 
Run Code Online (Sandbox Code Playgroud)

fre*_*ler 6

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

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

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

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

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