He visto muchas publicaciones que hacen algo como esto y eso me hace sentir que esto es posible y solo estoy haciendo algo mal. He simplificado tanto como sea posible para tratar de averiguar por qué ocurre esto:Uso de la variable xsl para capturar la salida de la plantilla de llamada volviendo en blanco para mí
Heres mi xml (nada muy emocionante):
<?xml version="1.0" encoding="UTF-8"?>
<REPORT>
</REPORT>
Aquí está mi XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="REPORT">
<xsl:variable name="tryThisTemplate">
<xsl:call-template name="TRY_THIS"/>
</xsl:variable>
<TEST1>
<xsl:call-template name="TRY_THIS"/>
</TEST1>
<TEST2>
<xsl:value-of disable-output-escaping="yes" select="$tryThisTemplate" />
</TEST2>
<TEST3>
<xsl:value-of select="$tryThisTemplate" />
</TEST3>
</xsl:template>
<xsl:template name="TRY_THIS">
<MY_NODE desc="my description" />
</xsl:template>
</xsl:stylesheet>
aquí es mi resultado:
<?xml version="1.0" encoding="utf-8"?>
<TEST1>
<MY_NODE desc="my description"/>
</TEST1>
<TEST2></TEST2>
<TEST3></TEST3>
aquí está mi pregunta: ¿Cómo es que TEST2 y T EST3 no funciona. La variable $ tryThisTemplate parece estar en blanco. Estoy malentendiendo algo aquí. ¿Debo hacer esto de otra manera?
Buena pregunta, +1. Vea mi respuesta para una explicación y solución completa. –