<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>
Run Code Online (Sandbox Code Playgroud)
有没有办法用条件简化上面的代码?对于给定对象的每个类值,随后有数十行具有额外属性.这些属性根据类的值形成集合.0-99类有一组额外的标签,每秒100-199级,当这些额外的标签组之一发生变化时形成维护噩梦.
我正在考虑这样的解决方案:
<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>
Run Code Online (Sandbox Code Playgroud)
但是当然这会失败,因为outputclass变量不在同一范围内.有什么方法可以绕过这个吗?