| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Err: Variable pIndex5 has not declared |
| Автор: Iren21 16.4.2013, 10:19 | ||
Хочу в условии(<xsl:if test="$pIndex5 = 5"/>) использовать определенную выше переменную (<xsl:variable name="pIndex5" select="5"/>), но выводит ошибку! Подскажите, как с этим справиться
|
| Автор: diadiavova 16.4.2013, 10:48 |
| Все дело в области видимости: пиндекс5 объявлена в блоке иф, стало быть там и нужно её использовать, а за пределами этого блока она не видна. |
| Автор: Iren21 16.4.2013, 11:09 | ||
| По сути проблема такая: Идем по Row, если пройдя цикл Index встретился со значениями 3,5,21 (должны присутствовать все значения), то запоминает значения в теге <Data>наше значение</Data> и потом выводим их
|
| Автор: diadiavova 16.4.2013, 11:38 |
| Так в чём затруднение? Отобрать строки, в которых присутствуют все эти индексы? |
| Автор: Iren21 16.4.2013, 11:51 |
| Так проблема как раз в переопределении переменной! Нужно собрать данные в строках с индексами 3, 5, 21, но только при условии, если эти 3 строки встретилсь в коде, если их нет, то ничего не делать. Хотел сделать так: объявить пустые переменные, и если в коде встречаем нужный индекс, то в переменную идет запись, после онализируем, все ли переменные заполнены и если да, то выводим собранный результат. Но проблема в том, что переопределить описанную переменную не получается. Других вариантов как это сделать - не знаю! Если есть возможность выцепить нужные значения - покажи плиз, как это сделать! |
| Автор: diadiavova 16.4.2013, 12:46 | ||||
Во-первых, забудь о переменных, циклах и прочей лабуде, поскольку это функциональный язык и здесь ничего этого не( даже не смотря на имена элементов типа variable). Во-торых, ты так и не сырмулировал точно суть пооблемы. Насколько я понял, заключается проблема именно в отборе строк, в которых присутствуют все три индекса. Делается это путём задания более точного критерия отбора строк, то есть надо использовать фильтр по строкам. Вместо
|