Estoy tratando de hacer algo que parece que debería ser muy simple, pero no puedo hacerlo funcionar, y parece que no puedo encontrar ejemplos que no involucre muchas cosas irrelevantes. Quiero actualizar el contenido de texto de una etiqueta xml específica a un valor específico (pasado como parámetro, este XSLT se usará desde hormiga). Un ejemplo sencillo:Actualice el texto de un elemento con XSLT basado en el parámetro
Quiero transformar
<foo>
<bar>
baz
</bar>
</foo>
Para
<foo>
<bar>
something different
</bar>
</foo>
Esta es la hoja de estilo que he intentado, lo que se traduce en tan sólo las etiquetas, no hay texto en absoluto
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- identity transformation, to keep everything unchanged except for the stuff we want to change -->
<!-- Whenever you match any node or any attribute -->
<xsl:template match="node()|@*">
<!-- Copy the current node -->
<xsl:copy>
<!-- Including any attributes it has and any child nodes -->
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- change the text of the bar node, in the real template the value won't be specified inline -->
<xsl:template match="/foo/bar/">
<xsl:param name="baz" value="something different"/>
<xsl:value-of select="$baz"/>
</xsl:template>
</xsl:stylesheet>
¡Gracias de antemano!
He intentado que (tanto en mi ejemplo un poco más complejo, y en [ el ejemplo base] (http://www.xsltcake.com/slices/Y8fojh/4)), pero parece que no funciona? Obtengo una etiqueta vacía de foo. ¿Copié algo mal? – user1126518
Sean, el "código XSLT" proporcionado ocasiona errores de tiempo de compilación con cualquier procesador compatible con XSLT 1.0. –