Всё зависит от структуры - не факт, что она одинаковая.
Самое простое - загрузить данные из двух файлов во временную таблицу (или массив) и выгрузить обратно.
Также можно "прогуляться" по DOM-модели.
(0) Вытащи XPAth все узлы из второго дерева и итеративно их обходя, юзай методы в основном дереве СоздатьЭлемент и какие там еще нужны, вставляй в дочерние для <shop>.
+2
Только вместо СоздатьЭлемент() надо ИмпортироватьУзел() и ДобавитьДочерний()
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший