Если у вас есть пример 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>
Вы можете вставить новые элементы, воссоздав образец XML со следующим XQuery:
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>