在xsl中创建给定长度的整数数组

时间:2013-02-14 13:46:39

标签: xml xslt

我必须创建一个长度为$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>

如何加载数组?我是初学者。非常感谢你。

1 个答案:

答案 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