2012-07-17 16 views
5

Volevo sapere come trovare il primo nome nodo figlio di un nodo specifico in xslt.nome nodo figlio primo in xslt

Ho un xml:

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

posso avere un nome utilizzando corpo/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> 

L'uscita dovrebbe essere

<name> 
    para 
    </name> 
+0

Quale elemento stai tentando di visualizzare? E stai cercando di visualizzare il nome dell'elemento o il contenuto dell'elemento? – freefaller

+0

Solo un nome ... – atif

risposta

6

provare qualcosa di simile ...

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

O se non lo fai effettivamente bisogno della variabile, semplicemente ...

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

Ecco uno xmlplayground di t 2 ° esempio ... per vedere il <name>para</name> fare clic su View Source nella finestra di output.

+0

@Atif, sei il benvenuto :-) Gli Upvotes sono sempre piacevoli da avere ;-) – freefaller

Problemi correlati