我们有非常大的数据文件,比如这个:
<itemList> <item>A1</item> <item>A2</item> <item>A3</item> <item>...</item> <item>A6000</item> </itemList>
我们得把它们分成更小的块,每个小块1000块。所以看起来是这样的:
<itemList> <itemSet> <item>A1</item> <item>...</item> <item>A1000</item> <itemSet> <itemSet> <item>...</item>
在XQuery中,最好的分割方法是什么?有什么想法吗?
非常感谢
【玩转 GPU】有奖征文
精美礼品等你拿!
加窗口的for循环是最好的答案(请参阅Ghislain的答案),但这只能在XQuery 3中使用,而您的处理器可能不支持它。在这种情况下,您可以使用自己的语言,就像在任何其他语言中一样:
declare variable $itemList := <itemList> <item>A1</item> <item>A2</item> <item>A3</item> <item>A4</item> <item>A5</item> <item>A6</item> <item>A7</item> <item>A8</item> </itemList>; declare variable $groupSize := 3; element itemList { for $group in (0 to fn:ceiling(count($itemList/item) div $groupSize) - 1) let $groupStart := ($group * $groupSize) +1