Как я могу увидеть результаты ввода узла или любые другие обновления данных с помощью xquery? - PullRequest
0 голосов
/ 22 января 2019

Я хочу знать, как я могу увидеть результат обновления данных через xml с помощью xquery.Вы знаете, вставьте узел ...

У меня есть, например, (я использую BaseX, кстати):

insert node
<dance id="7">
    <name>Foxtrot</name>
</dance>
before //Dances/dance[1]

Это не возвращает ошибку, но я не вижурезультат в файле и где угодно.

1 Ответ

0 голосов
/ 23 января 2019

Если у вас есть пример 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>
...