我想知道如何使用xquery通过xml查看数据更新的结果。你知道,插入节点...
例如,我有这个(我正在使用BaseX btw):
insert node
<dance id="7">
<name>Foxtrot</name>
</dance>
before //Dances/dance[1]
这不是返回错误,但是在文件和任何位置都看不到结果。
答案 0 :(得分:0)
如果您有这样的示例XML:
<?xml version='1.0' encoding='utf-8'?>
<Dances>
<dance id="3">
<name>Lambada</name>
</dance>
<dance id="7">
<name>Foxtrot</name>
</dance>
<dance id="9">
<name>Waltz</name>
</dance>
</Dances>
您可以通过使用以下XQuery重构示例XML来插入新元素:
let $a := for $x at $pos in doc("sample.xml")/Dances/dance return ($x)
let $insBef := 2
let $new := <dance id='55'><name>Salsa</name></dance>
return
<Dances>
{insert-before($a,$insBef,$new)}
</Dances>
这将在第二个节点之前插入“ Salsa”节点($ insBef = 2 =“ Foxtrot”)。结果是
<?xml version="1.0" encoding="UTF-8"?>
<Dances>
<dance id="3">
<name>Lambada</name>
</dance>
<dance id="55">
<name>Salsa</name>
</dance>
<dance id="7">
<name>Foxtrot</name>
</dance>
<dance id="9">
<name>Waltz</name>
</dance>
</Dances>