Xpoint
   [напомнить пароль]

For-each с доп. параметрами

Метки: [без меток]
2010-10-04 17:20:42 [обр] Константин Цой(0/2)[досье]

Доброго времени суток!

У меня есть на входе XML

<list>
    <item>
        <title>Текст 1</title>
        <win>
            <link>Ссылка 1</link>
        </win>
    </item>
    <item>
        <title>Текст 2</title>
        <nix>
            <link>Ссылка 2</link>
        </nix>
    </item>
    <item>
        <title>Текст 3</title>
        <win>
            <link>Ссылка 3</link>
        </win>
    </item>
    <item>
        <title>Текст 4</title>
        <nix>
            <link>Ссылка 4</link>
        </nix>
    </item>
</list>

И есть XSL, который я накладываю на этот XML:

<xsl:variable name="list" select="item[child::*[local-name() = ]/link]"/> - в $list вытаскиваю все что отвечает требованию child::*[local-name() = ]/link
к примеру nix - получается две позиции 2 и 4.

<xsl:for-each select="$list[position() mod 2 = 1]">
    <tr>
        <xsl:apply-templates select=".|following-sibling::item[position() &lt; 2]"/>
    </tr>
</xsl:for-each>

Но вот тут following-sibling играет со мной злую шутку и выводит не 4 позицию, а 3... потому что она идет за 2-й.

Хотя всегда думал что following-sibling срабатывает в рамках $list.

Можно как это обойти?

Powered by POEM™ Engine Copyright © 2002-2005