Добавление узлов с помощью 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

Вы также можете изменить имя базы данных на имена файлов, если вы храните файлы только на жестком диске, а не в качестве базы данных.

Другие вопросы по тегам