<xsl:choose>
<xsl:when test="long convoluted expression">
<xsl:element name="Class">123</xsl:element>
<a lot more xsl:elements>
</xsl:when>
<xsl:when test="next very long expression">
<xml:element name="Class">124</xsl:element>
<a lot more xsl:elements>
</xsl:when>
<tens of more similar xsl:when>
</xsl:choose>
¿Hay alguna manera de simplificar el código anterior con condicionales? Para cada valor de clase que se les da a los objetos, siguen decenas de filas con atributos adicionales. Estos atributos forman conjuntos de acuerdo con el valor de la clase. La clase 0-99 tiene un conjunto de etiquetas adicionales, clase 100-199 por segundo, formando una pesadilla de mantenimiento cuando cambia uno de estos conjuntos de etiquetas adicionales.Condiciones XSLT/alcance variable
que estaba considerando una solución como esta:
<xsl:choose>
<xsl:when test="long convoluted expression">
<xml:element name="Class">123</xsl:element>
<xsl:variable name="outputclass" select="123">
</xml:when>
<xsl:when test="next very long expression">
<xml:element name="Class">124</xsl:element>
<xsl:variable name="outputclass" select="124">
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$outputclass > 99">
<xml:elements for classes 100-199 here>
</xsl:when>
<xsl:choose>
Pero por supuesto esto no funciona, como la variable outputclass no está en el mismo ámbito. ¿Alguna forma de resolver esto?
Esto es confuso.Puede ser más claro si agrega un documento de entrada y salida de muestra. –
Buena pregunta (+1). Vea la mejor solución * real * en mi respuesta, con un código completo y explicaciones. :) –