首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XQuery插入相同节点的数据

XQuery插入相同节点的数据
EN

Stack Overflow用户
提问于 2013-11-08 09:31:14
回答 2查看 82关注 0票数 0

以下是我的XML文件的结构-

代码语言:javascript
复制
<Doc>
  <P n="1"/>
  <P>blah blah blah. <B>Pg-1</B></P>
  <P n="2"/>
  <P>blah blah blah. <B>Pg-2</B></P>
</Doc>

我得把它改成-

代码语言:javascript
复制
<Doc>
  <P n="1">blah blah blah. <B>Pg-1</B></P>
  <P n="2">blah blah blah. <B>Pg-2</B></P>
</Doc>

怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-08 12:58:13

如果查询处理器支持XQuery更新,这是另一种解决方案:

代码语言:javascript
复制
copy $doc :=
  <Doc>
    <P n="1"/>
    <P>blah blah blah. <B>Pg-1</B></P>
    <P n="2"/>
    <P>blah blah blah. <B>Pg-2</B></P>
  </Doc>
modify (
  for $p1 in $doc/P[@n]
  let $p2 := $p1/following-sibling::P[1]
  return (
    insert node $p2/node() into $p1,
    delete node $p2
  )
)
return $doc
票数 1
EN

Stack Overflow用户

发布于 2013-11-08 09:50:47

这有点棘手,这是我想出来的。不过,我不确定是否有更好的方法。

代码语言:javascript
复制
for $pn in Doc/P[@n] 
  let $nextPn := $pn/following-sibling::P[@n]
  let $pGroup := ($pn union $pn/following-sibling::P) except ($nextPn union $nextPn/following-sibling::P)
return <P>{$pn/attribute(), $pGroup/node()}</P>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19855607

复制
相关文章

相似问题

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