Kamrad.ru

Kamrad.ru (https://kamrad.ru/index.php)
- Веб-дизайн, вёрстка и веб-программирование (https://kamrad.ru/forumdisplay.php?forumid=87)
-- Вложенный xsl:for-each (https://kamrad.ru/showthread.php?threadid=45988)



CHaSE 03-02-2003 22:43:

Question Вложенный 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 05-02-2003 05:33:

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



CHaSE 05-02-2003 19:03:

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

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



Dark 06-02-2003 06:25:

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



MACTEP 19-02-2003 19:49:

Вложенным 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 19-02-2003 19:55:

Спасибо ;)


Текущее время: 18:55

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