2010-08-12 15 views
10

Si tengo un archivo XML que incluyeXSLT: valor de texto asociado con el elemento

<param name="foo" value="5000" >foo is a way of making pasta sauce</param> 
<param name="bar" value="3000" >bar is controlling the beer taps</param> 

y quiero usar XSLT para procesar esto en un archivo HTML, con el nombre y valor atributos y el texto una descripción, ¿cómo puedo obtener el texto del nodo XML?

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:text> </xsl:text></td> 
    </tr> 
</xsl:for-each> 

El fragmento de XSLT anterior conseguir con éxito los atributos de nombre y valor, pero no puede obtener el texto, y creo que me estoy perdiendo algo obvio, pero no sé qué.

Respuesta

9

probar este

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:value-of select="text()"/></td> 
    </tr> 
</xsl:for-each> 
+0

que funciona, gracias! –

3

AHA, esto también parece funcionar:

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:value-of select="."/></td> 
    </tr> 
</xsl:for-each> 
+5

Sí. Y la diferencia es: 'xsl: valor-de select =" text() "' muestra el valor de cadena del primer nodo de texto secundario, y 'xsl: value-de select =". "' Muestra el valor de cadena del nodo de contexto . –

Cuestiones relacionadas