2016-01-22 2 views
-2

Я работаю над XSLT, где есть два блока foreach. говорят block1 и block2Назначение переменной в XSLT

на основе элементов в цикл в block1, я буду генерировать переменный, которая будет использоваться в block2.

Проблема с asigning значение переменной в первом блоке

чехол-1я определить переменную внутри блока 1, скажем вар

  • В этом случае не может ссылаться на переменную вар в второй блок (т.е. Block2), дает мне переменную ошибку вне диапазона.

Case-2Я определяю переменную вне обоих блоков, говорят, как глобальная переменная.

  • В этом случае я могу refrence переменную НО изменения, внесенные в переменную в block1 не отражается в block2.
+0

Прямо сейчас, вы [спрашиваете о своем решении, а не о проблеме] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Посмотрите на это с другой точки зрения: Объясните, как выглядит ваш входной XML, и каков ваш _goal_, ожидаемый результат. Покажите свой запрошенный код XSLT для этого (http://stackoverflow.com/help/mcve). –

ответ

1

Ответ очень прост: вы не можете назначать значения для переменных в XSLT, потому что в качестве функционального языка часть дизайна языка специально не позволяет этого.

От вас вопрос не совсем ясен, что вы хотите сделать. Возможно, одним из способов решения вашей проблемы является запись «Блок 2» в качестве функции/шаблона (в зависимости от того, используете ли вы 2.0 или 1.0) и вызывать его из «Блока 1» с параметром, который передает значение.

Но без совместного использования лучшего описания того, что именно вы делаете, трудно помочь, кроме как сказать, что назначение переменных просто является тем, что XSLT не позволит вам делать.