我有以下問題,我認爲它有一個簡單的解決方案,我只是沒有這方面的知識。如何使用XSLT將連續號碼分組
我已經這個輸入例如:
<set>
<value>8</value>
<value>1</value>
<value>2</value>
<value>10</value>
<value>4</value>
<value>22</value>
<value>12</value>
<value>45</value>
<value>11</value>
<value>3</value>
<value>5</value>
<value>9</value>
<value>21</value>
<value>6</value>
<value>7</value>
<value>13</value>
</set>
我想創建與最大10個元素的每個其中數字是連續的並以升序的序列。
所需的輸出:
<MOrd>
<range>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>5</value>
<value>6</value>
<value>7</value>
<value>8</value>
<value>9</value>
<value>10</value>
</range>
<range>
<value>11</value>
<value>12</value>
<value>13</value>
</range>
<range>
<value>21</value>
<value>22</value>
</range>
<range>
<value>45</value>
</range>
</Mord>
我有這個代碼,到目前爲止,但不知道如何着手:
<MOrd>
<xsl:for-each select="$Set">
<xsl:sort select="value" order="ascending" data-type="number"/>
<xsl:for-each-group select="value" group-by"value">
<range>
<xsl:if test=".">
<value>
<xsl:value-of select="."/>
</value>
</xsl:if>
</range>
</xsl:for-each-group>
</xsl:for-each>
</MOrd>
你會如何走?
感謝您的快速回復,但那對我不起作用:請再次參見下面的問題 – user2726445
更新的問題 – user2726445
我對「number()」函數的回答做了小小的調整。你可以添加一個'。'如果你的處理器需要一個參數來表示當前節點。 –