replace () является строковой операцией, поэтому перед заменой XML будет преобразован в строку.
Чтобы создать измененную копию исходного файла, вы можете изменить преобразование идентичности, которое рекурсивно копирует исходный файл, чтобы вставить новые узлы, где это необходимо - см. Статью в XQuery Wikibook
В качестве альтернативы, если файл находится в базе данных XML, такой как eXist, вы можете использовать операции обновления для вставки элементов на месте.