5

我想知道如何在 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> 
4

1 回答 1

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

于 2012-07-17T16:54:56.490 回答