XSLT - это функциональный язык. Это, помимо прочего, означает, что переменные, однажды определенные, являются неизменными (не может быть изменено).
Любая проблема, которая может быть решена с помощью императивного решения, также может быть решена не только в XSLT, но и на любом функциональном языке программирования - возможно, очень похожими способами. В большинстве случаев эффективные функциональные решения существуют и могут быть использованы.
Я бы настоятельно рекомендовал прочитать хорошую книгу по функциональному программированию - такую, как "Haskell в реальном мире". Не только в качестве общего интереса, но и потому, что в будущем XPath 3.0 / XSLT 3.0 и XQuery 3.0 функции являются гражданами первого сорта (функции более высокого порядка) и такие функции, как сгиб влево () , сгиб вправо () и map () являются стандартными в XPath 3.0.
Пожалуйста, укажите вашу проблему точно, и многие люди смогут предоставить решение XSLT .