![]() |
|
Модераторы: diadiavova |
![]()
|
|
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 4 Всего: 401 |
В поиске нашел только обратную задачу :(
Дан XML с рекурсивной структурой а-ля
Нужно получить просто линейный список в порядке появления id-ов в коде, т.е.
Или даже вообще плевать на порядок - просто избавиться от вложенности. После двух бессонных ночей туплю как пьяная улитка. Помогите, пожалуйста! -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 3 Всего: 186 |
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 4 Всего: 401 |
Exception, огромное спасибо!
Правда, заработало только после добавления рекурсивного вызова <xsl:apply-templates select="./elem"/> в конец основного... но главное, что я смог понять свою глупую ошибку, над которой непростительно тупил столько дней... Это сообщение отредактировал(а) SelenIT - 7.4.2007, 20:25 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
<xsl:apply-templates select="./elem"/>
а что это означает? //elem и вот это |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 3 Всего: 186 |
||||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
||||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 4 Всего: 401 |
По идее, "//elem" - для <elem> на любом уровне вложенности, а просто "elem" или "./elem" - только для непосредственных потомков текущего уровня. Но почему-то исходный вариант Exceptionа у меня не заработал... кстати, до сих пор не понимаю, почему, буду благодарен за окончательное внесение ясности!
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
SelenIT,
если в xslt описать xsl:template match="elem" то он применится для всех <elem> xml-документа, любой вложенности... разве не так?? и я тоже - всеьма )) |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 4 Всего: 401 |
AFAIK, не так... только для того, что видно с текущего уровня (изначально - с корня, т.е. "/"). Если, конечно, искусственно не "натравить" шаблон на другие пути с помощью xsl:apply-templates (что меня и выручило в примере...). Кстати, один знающий человек советовал мне всячески избегать путей с "//" без крайней необходимости, т.к. это приводит к лишнему полному перебору дерева и => лишней нагрузке на проц... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
||||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 3 Всего: 186 |
А вот это заработает?
|
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Alx, видимо, вместо name должно быть select.
Там ещё, кстати, тег не закрыт. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 4 Всего: 401 |
Exception, нет, даже с поправками batigoalа с "../elem" в 11-й строке не заработало, а Altova выругалась насчёт "The XSL processor stack has overflowed - probable cause is infinite template recursion". С заменой на просто "elem" там же заработало, но ведь так работает и без отдельного вызова для "/"...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Ну да, все логично... Эта добавка позволяет отсечь все не-elem теги. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]()
|
| Правила форума "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. |