<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類變量不是在同一範圍內。任何方式來解決這個問題?
這很混亂。如果您添加示例輸入和輸出文檔,它可能會變得更清晰。 – 2010-07-02 12:31:33
好問題(+1)。在我的答案中看到* real * best解決方案 - 完整的代碼和解釋。 :) – 2010-07-02 13:28:34