Я хочу вставить узел, используя приведенный ниже код, но если я перезапущу код, я не хочу, чтобы мой узел повторялся дважды, если все элементы имеют одинаковое значение -
let $doc := fn:doc("abc.xml")
(: abc.xml looks like--
<root>
<value1>somevalue</value1>
<value2>somevalue</value2>
<value3>somevalue</value3>
<value4>somevalue</value4>
<Country>Australia</Country>
<value6>somevalue</value6>
<value7>somevalue</value7>
<value8>somevalue</value8>
<value9>somevalue</value9>
<value10>somevalue</value10>
</root> :)
let $wrapper := if($doc//Country eq "Australia") then "AUS"
else if($doc//Country eq "India") then "IND"
else ()
let $element := element {$wrapper}{
element A{"A"},
element B{"B"},
element C{"C"},
element D{"D"},
element E{"E"}
}
let $doc := xdmp:node-insert-after(doc("abc.xml")//value4, $element)
return doc("abc.xml")
Всякий раз, когда яя выполняю этот запрос, мой ELEMENT вставляется после value4, но я хочу, чтобы, если я выполняю это несколько раз, он должен проверить все «элемент», а также $ wrapper.Если он уже существует, он ничего не должен делать, но если какое-либо значение изменилось, он должен заменить оболочку или добавить новую оболочку
Example- If i am running this 2 times-
Actual Output when my country is AUSTRALIA and elements are "ABCDE"
<root>
<value1>somevalue</value1>
<value2>somevalue</value2>
<value3>somevalue</value3>
<value4>somevalue</value4>
<AUS>
<A>A</A>
<B>B</B>
<C>C</C>
<D>D</D>
<E>E</E>
</AUS>
<AUS>
<A>A</A>
<B>B</B>
<C>C</C>
<D>D</D>
<E>E</E>
</AUS>
<Country>Australia</Country>
<value8>somevalue</value8>
<value9>somevalue</value9>
<value10>somevalue</value10>
</root>
Expected Output- After running 2 or more times
Case-1-If the elements are "ABCDE" and country is AUSTRALIA then it should give-
<root>
<value1>somevalue</value1>
<value2>somevalue</value2>
<value3>somevalue</value3>
<value4>somevalue</value4>
<AUS>
<A>A</A>
<B>B</B>
<C>C</C>
<D>D</D>
<E>E</E>
</AUS>
<Country>Australia</Country>
<value8>somevalue</value8>
<value9>somevalue</value9>
<value10>somevalue</value10>
</root>
Expected Output- Case-2-If the elements are "ABCFJ" and country is AUSTRALIA then it should give-
<root>
<value1>somevalue</value1>
<value2>somevalue</value2>
<value3>somevalue</value3>
<value4>somevalue</value4>
<AUS>
<A>A</A>
<B>B</B>
<C>C</C>
<D>F</D>
<E>J</E>
</AUS>
<Country>Australia</Country>
<value8>somevalue</value8>
<value9>somevalue</value9>
<value10>somevalue</value10>
</root>
Expected Output- Case-3-If the elements are "ABCDE" and country changed to INDIA in 2nd run then it should give-
<root>
<value1>somevalue</value1>
<value2>somevalue</value2>
<value3>somevalue</value3>
<value4>somevalue</value4>
<AUS>
<A>A</A>
<B>B</B>
<C>C</C>
<D>F</D>
<E>E</E>
</AUS>
<IND>
<A>A</A>
<B>B</B>
<C>C</C>
<D>F</D>
<E>E</E>
</IND>
<Country>Australia</Country>
<value8>somevalue</value8>
<value9>somevalue</value9>
<value10>somevalue</value10>
</root>
Любые предложения ??