Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > XSLT, Нумерация


Автор: tishaishii 3.7.2011, 10:39
Дано:
Код

<a>
    <b>
        <c val="21"/>
        <c val="1"/>
        <c val="14"/>
    </b>
    <d>
        <c val="14"/>
        <c val="3"/>
    </d>
</a>


Получить:
Код

<!-- Елементы "c" должны быть пронумерованы -->
<a>
    <b>
        <!-- Елементы "c" упорядочены -->
        <c number="1" val="1"/>
        <c number="2" val="14"/>
        <c number="3" val="21"/>
    </b>
    <d>
        <!-- Елементы "c" не упорядочены -->
        <c number="4" val="14"/>
        <c number="5" val="3"/>
    </d>
</a>

Автор: diadiavova 3.7.2011, 14:30
Код

<xsl:template match="//c">
<c val="{@val}" number="{count(preceding::c) + 1}" />
</xsl:template>

Что-то вроде того.

Автор: tishaishii 3.7.2011, 20:59
Спасибо за ответ.
Нашёл оптимальное решение:
Код
<xsl:number level="any"/>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)