Добавление узлов с помощью XQuery
У меня есть 2 XML-файла -
File1.xml
<Fruits>
<F>Apple</F>
<F>Pineapple</F>
<F>Orange</F>
<F>Banana</F>
</Fruits>
File2.xml
<Fruits>
<F>Grapes</F>
<F>Peach</F>
<F>Watermelon</F>
<F>Chickoo</F>
</Fruits>
Я хочу обновить / вставить File1.xml с данными из File2.xml, чтобы у меня был File1.xml как -
File1.xml
<Fruits>
<F>Apple</F>
<F>Pineapple</F>
<F>Orange</F>
<F>Banana</F>
<F>Grapes</F>
<F>Peach</F>
<F>Watermelon</F>
<F>Chickoo</F>
</Fruits>
Как это сделать с помощью XQuery/XQuery Update? Я использую базу данных XML BaseX.
2 ответа
Если вы используете XQuery без контекста базы данных, у Zorba есть файловый модуль, если вы хотите обновить содержимое файла. Вы можете проверить это на http://www.zorba-xquery.com/html/modules/expath/file.
Если вы используете базу данных XML, вы можете написать следующее выражение обновления: вставьте узлы $file2/Fruits/F в $file1/Fruits $file1 и $ file2 в зависимости от типа базы данных, которую вы используете.
Это легко сделать с помощью XQuery Update:
insert nodes doc("File2")/Fruits/F as last into doc("File1")/Fruits
Вы также можете изменить имя базы данных на имена файлов, если вы храните файлы только на жестком диске, а не в качестве базы данных.