Kamrad.ru
 
 
поддержать форум | faq | правила | support | кабинет | discord-сервер | поиск | регистрация | участники | фотоальбом | выйти
Kamrad.ru Kamrad.ru » Авторские форумы » Веб-дизайн, вёрстка и веб-программирование » Вложенный xsl:for-each
новая тема  ответить следующая тема | предыдущая тема
Автор
 
CHaSE - offline CHaSE
Question03-02-2003 22:43 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Вложенный xsl:for-each

Не совсем понятно, как заставить работать вложенный xsl:for-each. Пример:

XML (t.xml):

code:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="t.xsl"?>
<root>
<obj>
<a>o1a</a>
<b>o1b</b>
<inn>
<i>o1i1</i>
<i>o1i2</i>
</inn>
</obj>
<obj>
<a>o2a</a>
<b>o2b</b>
<inn>
<i>o2i1</i>
<i>o2i2</i>
</inn>
</obj>
</root>



XSL (t.xsl):
code:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:for-each select="root/obj">
<xsl:value-of select="a"/>
<xsl:value-of select="b"/>
<xsl:for-each select="inn">
<xsl:value-of select="i"/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>



Вместо ожидавшегося:
o1a o1b o1i1 o1i2 o2a o2b o2i1 o2i2

IE6 показывает:
o1a o1b o1i1 o2a o2b o2i1

Получается, что вложенный xsl:for-each выводит только первую ноду. Спрашивается: что я делаю не так?

Dark - offline Dark
05-02-2003 05:33 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад
Темная личность



Сомневаюсь, что здесь ответят на подобные вопросы.

CHaSE - offline CHaSE
05-02-2003 19:03 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Я разве непристойное что-то спросил? Гы-гы :)

Вообще говоря, то, что мне было нужно, я сделал простым apply-templates, но все-таки интересно было бы узнать, почему вложенный цикл не работает...

Dark - offline Dark
06-02-2003 06:25 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад
Темная личность



Я бы сказал иначе: ты спросил слишком пристойное.
Тут люди с html-то не могут разобраться, а ты прям сходу с xml и xsl пожаловал.

MACTEP - offline MACTEP
19-02-2003 19:49 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Вложенным for-each-ем ты перебираешь все элементы <inn>, а не все элементы внутри
<inn>. Правильная XSL-ка будет такой:

code:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:for-each select="root/obj">
<xsl:value-of select="a"/>
<xsl:value-of select="b"/>
<xsl:for-each select="inn/i">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

CHaSE - offline CHaSE
19-02-2003 19:55 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Спасибо ;)

Текущее время: 06:49
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru