Я пытаюсь выполнить следующий запрос в Basex,Basex: Обновления не записываются обратно
let $c := doc('t.xq')//entry return (replace value of node $c/author with 'BaseX')
Входной файл t.xq
является
<entry>
<title>Transform expression example</title>
<author>BaseX Team</author>
</entry>
Я ожидаю, что возвращать измененные данные, но он выполняет и ничего не возвращает. он говорит Updates are not written back
Как я могу увидеть измененный entry
? какие команды возвращают измененные данные?
Обратите внимание, что Basex имеет сокращенный 'update' ключевого слова (см http://docs.basex.org/wiki/XQuery_Update#update) упростить выражение преобразования. Ваш код такой же, как 'doc ('t.xq') // обновление для входа заменить значение узла ./author с 'BaseX'' – dirkk
Я нашел это немного странным, так как если по умолчанию входные ресурсы просто« загружены » »и никогда не трогали снова, зачем вообще поддерживать ссылку на исходные ресурсы? Настоящей базой данных являются файлы данных, которые находятся внутри '~/BaseXData'. Вместо добавления ресурсов в БД его следует просто называть «импортом» как противоположность «export». – CMCDragonkai