【问题标题】:XQuery iteration in non seqential manner以非顺序方式进行 XQuery 迭代
【发布时间】:2012-06-29 17:51:26
【问题描述】:

我有一个带有以下标签的 xml 文档

          <User>aaaa</User>
          <User>bbbb</User>
          <User>cccc</User>
          <User>dddd</User>
          <User>eeee</User>
          <User>cccc</User>
          <User>uuuu</User>

使用 for 循环对其进行迭代时,数据未按顺序出现

例如:

有时会得到

aaaa
bbbb
cccc
dddd

有时会这样显示

uuuu
bbbb
cccc
dddd

如何按顺序迭代? 或提供任何顺序 xml 解析器的名称

提前致谢

【问题讨论】:

  • 当使用路径表达式从文档中检索时,您会期望document order 中的数据。但是,如果您提供的代码片段不符合您的要求,您可以获得更好的建议。

标签: java xml-parsing xquery


【解决方案1】:

这是一个示例,其中结果反映了源 XML 文档中元素的原始顺序:

for $x in /*/*
  return
    $x

当对以下文档(提供的 XML 片段,包装到单个顶部元素中以使其成为格式良好的 XML 文档)执行此 XQuery 时:

<t>
    <User>aaaa</User>
    <User>bbbb</User>
    <User>cccc</User>
    <User>dddd</User>
    <User>eeee</User>
    <User>cccc</User>
    <User>uuuu</User>
</t>

结果是:

<User>aaaa</User>
<User>bbbb</User>
<User>cccc</User>
<User>dddd</User>
<User>eeee</User>
<User>cccc</User>
<User>uuuu</User>

【讨论】:

  • 谢谢,循环是否每次都以相同的顺序提供上述结果? (我认为 XQuery 循环是非顺序的)
  • @nidhin:结果的顺序必须与此答案中显示的完全相同。这并不意味着处理完全按照相同的顺序执行。
猜你喜欢
  • 1970-01-01
  • 2015-03-18
  • 2019-11-12
  • 1970-01-01
  • 2021-11-04
  • 2011-11-26
  • 2022-01-11
  • 1970-01-01
  • 2019-01-15
相关资源
最近更新 更多