Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [XSLT] Получение атрибутов предков 
:(
    Опции темы
SwordOfDeath
  Дата 26.9.2010, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Привет. И все же я столкнулся с задачей получения атрибутов предков. Объясню на примере.
Есть данные:
Код

<item id="1">
    <item id="2">
        <item id="4"/>
    </item>
    <item id="3">
        <item id="5">
            <item id="6"/>
        </item>
    </item>
</item>

Хочу получить для item с id равным 4, id его второго по счету от начала документа предка. В данном случае это id=2. А для item id="6" это 3.

Пробовал так:
Код

<xsl:variable name="nodeID" select="//item[@id=$activeNode]/ancestor::*[$level]/@id"/>

Код

<xsl:variable name="nodeID" select="(//item[@id=$activeNode]/ancestor::*)[$level]/@id"/>

Где $activeNode это ID элемента у которого я хочу получить ID предка на $level уровне
Получаю пустую строку даже при $level=0.


Это сообщение отредактировал(а) SwordOfDeath - 26.9.2010, 19:59
PM MAIL   Вверх
magelan
Дата 26.9.2010, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 7
Всего: 16



не понятно, только, зачем вам это
Код

<xsl:variable name="nodeID" select="//item[@id=$activeNode]/ancestor::*[position()=$level]/@id"/>
 
PM MAIL   Вверх
SwordOfDeath
Дата 26.9.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Мне это нужно при выводе меню...
Нужно вывести меню определенного уровня.

Что-то не получаеться... Тоже пустая строка...
Сейчас создам чистый проект... буду тестить smile 

UPD: Разобрался, все работает(допустил ошибку при выводе информации)
Как оказалось мой оригинальный метод тоже работает!
<xsl:variable name="nodeID" select="(//item[@id=$activeNode]/ancestor::*)[$level]/@id"/>

Это сообщение отредактировал(а) SwordOfDeath - 26.9.2010, 22:47
PM MAIL   Вверх
magelan
Дата 27.9.2010, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 7
Всего: 16



механизм умолчания - конечно хорошо, но position() лучше не упускать из xPath, да, нотация длинее выходит, зато понятнее.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.