<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>
Есть ли способ упростить приведенный выше код с условными обозначениями? Для каждого значения класса, заданного объектами, следуют десятки строк с дополнительными атрибутами. Эти атрибуты образуют множества в соответствии со значением класса. Класс 0-99 имеет один набор дополнительных тегов, класс 100-199 в секунду, формирующий кошмар обслуживания, когда один из этих дополнительных наборов тегов изменяется.Условия XSLT/переменная область
Я рассматривал решение, как это:
<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>
Но, конечно, это не удается, так как outputclass переменная не в том же объеме. Любой способ обойти это?
Это смущает.Это может стать более ясным, если вы добавите образец ввода и вывода документа. –
Хороший вопрос (+1). В моем ответе см. * Реальное * лучшее решение - с полным кодом и пояснениями. :) –