|
Модераторы: diadiavova |
|
infarch |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Здравствуйте.
Мне нужно сформировать список элементов, в котором разметка и данные приходят из XML. Вот пример данных:
В результате должно получиться вот такое:
Я подготовил такой вот шаблон:
Однако я не могу понять как написать select. Внутренний цикл меняет контекст и я не могу обращаться к атрибутам файлов через './@a1'. Да и само имя атрибута теперь надо откуда-то взять... Наверно надо загнать в переменную, а как потом использовать? Подскажите пожалуйста! |
||||||
|
|||||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Так variable же. Привязываешь контекст к переменной там где он доступен, а когда контекст меняется через переменную все равно можно к обратиться нужному объекту. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
infarch |
|
|||
Опытный Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
diadiavova, а как указать имя аттрибута через переменную? Я вот так получил доступ к контексту файла:
Вот тут: "select="$f/@a1" как вместо захардкодженого @a1 использовать переменную $a для получения нужного атрибута? |
|||
|
||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
name($a) -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
infarch |
|
|||
Опытный Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
name($a) возвращает строку "attr". А мне нужно взять значение этого атрибута из column и по значению взять один из аттрибутов file. Например, если attr="a2" то мне нужен <file a2="..." >
|
|||
|
||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Это и есть имя атрибута. Тогда так $a Так это уже совсем другой вопрос. //file[@a2 = $a] -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
infarch |
|
|||
Опытный Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Так это опять таки не то, насколько я вижу. Таким образом мы находим файл который имеет атрибут а2 со значением из переменной а.
Но я уже разобрался. Родилась вот такая конструкция "<xsl:value-of select="$f/@*[local-name()=$a]" />". Спасибо за участие ) |
|||
|
||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Это выражение находит все элементы file, у которых есть атрибут, имя которого совпадает со значением переменной a и возвращает коллекцию значений этих атрибутов. Но поскольку ты передаешь это выражение в value-of, то оно возвратит значение первого из элементов в коллекции. Это точно именно то, что ты искал? И с local-name надо быть осторожнее, поскольку совпадение локальных имен - штука непредсказуемая. Если есть возможность, то лучше явно указать префиксы. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
infarch |
|
|||
Опытный Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
В переменной F у меня единичный файл, полученный во внешнем цикле. Да и результат я получил именно такой как и был нужен ) Есть надежда что это будет работать.
|
|||
|
||||
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |