2012-07-17 61 views
5

我想知道如何在xslt中找到特定節點的第一個子節點名稱。xslt中的第一個子節點名稱

我有一個xml:

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

可以用體/節點(i得名)[1] /本地名稱()?

<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> 
+0

你試圖顯示哪個元素?你試圖顯示元素的名稱,或元素的內容? – freefaller 2012-07-17 16:49:26

+0

只是一個名字... – atif 2012-07-17 16:53:06

回答

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的t他第二個例子...看到<name>para</name>在輸出窗口中點擊View Source

+0

@Atif,不客氣:-) Upvotes總是不錯的;-) – freefaller 2012-07-17 17:09:45

相關問題