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>

これが2番目の例のxmlplaygroundです...出力ウィンドウでを<name>para</name>クリックして確認します。View Source

于 2012-07-17T16:54:56.490 に答える