![]() |
|
Модераторы: diadiavova |
![]()
|
|
| Измайлов Ф.В. |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.12.2004 Репутация: 1 Всего: 2 |
Есть строка <Worksheet Index412="5" Index501="6" Index502="12" Index508="13" Index509="14"/>
Конструкция вида <xsl:value-of select="//Worksheet/@Index508"/> выдает результат а вот такое <xsl:variable name="v2"> <xsl:value-of select='concat("//Worksheet/@Index","508")'/> </xsl:variable> <xsl:value-of select="$v2"/> не хочет никак. В чем может быть дело? Измайлов Ф.В. |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Элементарно, concat срабатывает как
а так как элементов //Worksheet/@Index и 508 не обьявлено то и подставлять он ничего не подставляет. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Измайлов Ф.В. |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.12.2004 Репутация: 1 Всего: 2 |
Попробовал рецепт - подвисает сервер.
Наверное надо цель объяснить конкатенации строк. Надо выбрать значение атрибута у Worksheeta по имени этого самого атрибута. А имя составляется из постоянной части (Index) и переменной - это или 412, 508 и т.п. В переменную попадает правильная строка, т.е concat срабатывает(//Worksheet/@Index508), строки сливает, НО... следуюущий select, который должет выбрать значение атрибута, воспринимает переменную $v2 как строку(!) а не как инструкцию отбора. Если в этом же select,вместо переменной, прописать втупую ТУЖЕ строку - показывает значение атрибута. Такое ощущение, что concat выдает строку, какую то не такую, т.е. это только стока, и ничего больше. Вот в чем вопрос, ПОЧЕМУ так происходит. Или как обойти это? Измайлов Ф.В. |
|||
|
||||
| 3,14 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Это делается так:
xml:
xsl:
полученный xml:
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||
|
|||||||
| Измайлов Ф.В. |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.12.2004 Репутация: 1 Всего: 2 |
Спасибо, ответ помог, но отчасти. помогла конструкция
я только имя атрибута стал формировать динамически
И все заработало.. но как тяжко даются XLT преобразования!! Но когда поймешь - это вещь. Спасибо. Измайлов Ф.В. |
||||
|
|||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |