以下是我的XML文件的结构-
<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>我得把它改成-
<Doc>
<P n="1">blah blah blah. <B>Pg-1</B></P>
<P n="2">blah blah blah. <B>Pg-2</B></P>
</Doc>怎么做?
发布于 2013-11-08 12:58:13
如果查询处理器支持XQuery更新,这是另一种解决方案:
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发布于 2013-11-08 09:50:47
这有点棘手,这是我想出来的。不过,我不确定是否有更好的方法。
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>https://stackoverflow.com/questions/19855607
复制相似问题