2012-07-17 27 views
5

Quería saber cómo encontrar el primer nombre de nodo secundario de un nodo específico en xslt.primer nombre de nodo secundario en xslt

tengo una xml:

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

puedo obtener un nombre usando el cuerpo/nodo() [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> 

La salida debe ser

<name> 
    para 
    </name> 
+0

¿Qué elemento estás tratando de mostrar? ¿Y está tratando de mostrar el nombre del elemento o el contenido del elemento? – freefaller

+0

Solo un nombre ... – atif

Respuesta

6

Pruebe algo como esto ...

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

O si en realidad no necesita la variable, simplemente ...

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

Aquí hay un xmlplayground de t El segundo ejemplo ... para ver <name>para</name> haga clic en View Source en la ventana de resultados.

+0

@Atif, de nada :-) Los votos a favor siempre son agradables ;-) – freefaller

Cuestiones relacionadas