发布
社区首页 >问答首页 >XQuery:如何将大型xml文件拆分为较小的文件

XQuery:如何将大型xml文件拆分为较小的文件
EN

Stack Overflow用户
提问于 2015-10-12 12:26:41
回答 2查看 841关注 0票数 3

我们有非常大的数据文件,比如这个:

代码语言:javascript
复制
<itemList>
 <item>A1</item>
 <item>A2</item>
 <item>A3</item>
 <item>...</item>
 <item>A6000</item>
</itemList>

我们得把它们分成更小的块,每个小块1000块。所以看起来是这样的:

代码语言:javascript
复制
<itemList>
 <itemSet>
  <item>A1</item>
  <item>...</item>
  <item>A1000</item>
 <itemSet>
 <itemSet>
  <item>...</item>

在XQuery中,最好的分割方法是什么?有什么想法吗?

非常感谢

EN

Stack Overflow用户

回答已采纳

发布于 2015-10-12 13:30:04

加窗口的for循环是最好的答案(请参阅Ghislain的答案),但这只能在XQuery 3中使用,而您的处理器可能不支持它。在这种情况下,您可以使用自己的语言,就像在任何其他语言中一样:

代码语言:javascript
复制
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
  let $groupEnd := ($group + 1) * $groupSize
  return
    element itemGroup {
      $itemList/item[$groupStart to $groupEnd]
    }
}
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33081129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档