ОБСУЖДЕНИЕ

Работа с xml-файлами

22 ответов 8,9 тыс.
Это я к пример у написал соответствие двух строк. В действительности может быть отношение один ко многим. Блоков может быть 50-60 тысяч.
Вы же не планировали запихнуть всё это в код? Где-то же надо хранить эти значения. Или в шаблоне, или в какой-то базе.
Если XSLT не устраивает, то я думаю, надо иметь таблицу-справочник в РСУБД с соответствием значений r1/r3. Загружать в какую-то временную (in memory?) таблицу исходный XML файл, попутно дополняя недостающие поля значениями из справочника. Потом выгружаем всё это в новый XML файл. Вот как-то так...
 
пример использование switch/case,
я не нашел онлайн xquery тестера подддерживающего replace, поэтому в полной работоспособности примера не уверен, но подход должен быть понятен

 
если пар значений много, то switch/case явно не лучший выбор

saxon по крайнер мере, поддерживает передачу аргументов в xquery и вызов java методов из запроса, я бы копал в эту сторону