У меня странное требование.
У меня есть переменная в xslt, содержащая месяцы с их идентификатором (1-12)
Проблема в том, что мне нужно отобразить их все, но начиная с месяца, отличного от января (1).
В настоящее время у меня есть следующее
<xsl:variable name="months">
<Months>
<Month ID="1">JAN</Month>
<Month ID="2">FEB</Month>
<Month ID="3">MAR</Month>
<Month ID="4">APR</Month>
<Month ID="5">MAY</Month>
<Month ID="6">JUN</Month>
<Month ID="7">JUL</Month>
<Month ID="8">AUG</Month>
<Month ID="9">SEP</Month>
<Month ID="10">OCT</Month>
<Month ID="11">NOV</Month>
<Month ID="12">DEC</Month>
</Months>
</xsl:variable>
Затем я повторюсь с этим, чтобы я мог начать с данного месяца
<xsl:for-each select="msxsl:node-set($months)//Month[@ID >= $startAtMonth]">
<xsl:sort data-type="number" select="@ID"/>
<th>
<xsl:value-of select="text()"/>
</th>
</xsl:for-each>
<xsl:for-each select="msxsl:node-set($months)//Month[not(@ID >= $startAtMonth)]">
<xsl:sort data-type="number" select="@ID"/>
<th>
<xsl:value-of select="text()"/>
</th>
</xsl:for-each>
Но для этого требуются два утверждения для каждого, и это для каждого потребуется в нескольких местах. Есть ли более краткий способ написать это, чтобы это был один цикл?