He buscado por todas partes para encontrar una solución a mi problema, pero acabo de recibir más preguntas ...Plantilla de llamada XSLT con QName dinámico?
considerar el siguiente código XML:
<dynamicStuff>
<dyn id="name1">...</dyn>
<dyn id="name2">...</dyn>
<dyn id="name3">...</dyn>
<dyn id="name4">...</dyn>
</dynamicStuff>
y supongamos que el que tengo un archivo XSLT de la siguiente :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="name1">
...
</xsl:template>
<xsl:template name="name2">
...
</xsl:template>
<xsl:template name="name3">
...
</xsl:template>
<xsl:template name="name4">
...
</xsl:template>
</xsl:stylesheet>
Lo que quiero hacer es a partir de un archivo XSLT SEGUNDO dinámicamente determinar qué plantilla para llamar con algo como esto:
<xsl:variable name="templateName">
<xsl:value-of select="dyn/@id"/>
</xsl:variable>
<xsl:call-template name="$templateName"/>
lamentablemente no su trabajo, créeme cuando digo que he probado un montón de cosas diferentes, aunque suene tan simple que no funciona bien ...
Me estoy perdiendo algo?
Editar:
he hecho con éxito la siguiente:
<xsl:template name="staticName">
<xsl:param name="id" />
<xsl:if test="$id = 'name1'">....</xsl:if>
<xsl:if test="$id = 'name2'">....</xsl:if>
...
</xsl:template>
Llamada de esta manera:
<xsl:call-template name="staticName">
<xsl:with-param name="id" select="@id"/>
</xsl:call-template>
es necesario decir lo inconveniente que esto es ... en primer todo mi código estará ligado a ese Nombre estático (imagine que necesito hacer esta llamada en una docena de archivos) ... segundo tendré un grupo de cont (no) relacionado ent dentro de la misma plantilla cuando podría ser más separados ... una pesadilla para actualizar el equipo uu
Hace lo que quiero, pero no de la manera que necesito ...
Gracias de antemano por cualquier luz ¡en este asunto!
lamentablemente el número de posibles eventos no es pequeño ... aunque es finito. El gran problema es que no está agrupado todo en un solo archivo – Fawix
Bueno, el problema es que no tengo un diseño fijo para el xml y puede aparecer en varias etiquetas diferentes (y varias xmls diferentes) solo con el ID para identificarlo, y mi XSLT es demasiado genérico para poder determinar el nombre ... Hasta ahora, lo mejor fue la solución utilizando parámetros. – Fawix