Kamrad.ru (https://kamrad.ru/index.php)
- Веб-дизайн, вёрстка и веб-программирование (https://kamrad.ru/forumdisplay.php?forumid=87)
-- Вложенный xsl:for-each (https://kamrad.ru/showthread.php?threadid=45988)
Вложенный 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>
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>
Сомневаюсь, что здесь ответят на подобные вопросы.
Я разве непристойное что-то спросил? Гы-гы :)
Вообще говоря, то, что мне было нужно, я сделал простым apply-templates, но все-таки интересно было бы узнать, почему вложенный цикл не работает...
Я бы сказал иначе: ты спросил слишком пристойное.
Тут люди с html-то не могут разобраться, а ты прям сходу с xml и xsl пожаловал.
Вложенным 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>
Спасибо ;)
Текущее время: 18:55
Powered by: vBulletin Version 2.0.1
Copyright © Jelsoft Enterprises Limited 2000, 2001.
Любое использование материалов сайта
возможно только с разрешения его администрации.