我必须创建一个长度为$lung
的整数数组。数组的元素按升序从1到$limit
不等。也就是说,第一个元素的值必须为1,第二个值必须为$limit
,然后再从值1开始到$limit
。这是我的代码草稿:
<xsl:variable name="limit" select="count(documen('./db/list.xml')/root_list/list"/>
<xsl:variable name="lung" select="(6) div (./lunghezza)"/>
<xsl:variable name="array" as="xs:integer">
<Item>1</Item>
<Item>2</Item>
...
<Item>$limit</Item>
<Item>1</Item>
...
<Item>$limit</Item>
</xsl:variable>
如何加载数组?我是初学者。非常感谢你。
答案 0 :(得分:1)
XSLT没有arrays
。使用XSLT 1.0,您拥有节点集,2.0具有序列(节点或原子值)。因此,使用XSLT 2.0,您可以使用1 to $limit
创建一系列整数值,例如<xsl:variable name="array" select="1 to $limit, 1 to $limit"/>
会创建一系列2 * $limit
值。
[编辑] 也许
<xsl:variable name="array" select="(for $n in 1 to (xs:integer(ceiling($lung div $limit))) return (1 to $limit))[position() le $lung]"/>
是你想要的,它创建一个长度为$lung
的整数值序列,其中包含从1 to $limit
开始的子序列,其中最后一个子序列被切断以确保长度正好$lung