2012-07-17 2 views
5

xslt에서 특정 노드의 첫 번째 자식 노드 이름을 찾는 방법을 알고 싶었습니다.()xslt의 첫 번째 자식 노드 이름

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

제가 몸/노드 (하여 이름을 취득 할 수있다) [1]/로컬 이름 :

I는 XML을?

<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

+0

그냥 이름 ... – atif

답변

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> 

여기에 t의 xmlplayground이 있습니다. 그는 두 번째 예제 ... <name>para</name>을 보려면 출력 창에서 View Source을 클릭하십시오.

+0

@Atif, 당신은 환영합니다 :-) Upvotes도 항상 가지고있는 것이 좋습니다 ;-) – freefaller

관련 문제