Общая концепция в том что вам нужно найти все это одним запросом, и потом произвести замену используя постановки найденной подстроки.
Если показывать на примере то вам нужно заменить
(<offer id=")(.*)(".*<vendorCode>)(.*)(<)
на
\1\4\3\4\5
Главное не забудьте включить "и новые строки"
Или если вам удобнее картинкой:
Каждая найденная скобка нумеруется с единицы, и их можно использовать при "замене". Тут мы выделили отдельно код из офера, и код вендора, и подставили второй вместо первого, и самого себя.
Тестировалось на этом тексте:
<offer id="12312312321" available = true>
sdfa
asdfas
asdfa
sf
<><<>><><><
<vendorCode>261913</vendorCode>
если что-то не будет работать, то лучше киньте свои данные текстом, перепечатывать их слишком долго.