powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL GROUP и последовательная нумерация
1 сообщений из 1, страница 1 из 1
XSL GROUP и последовательная нумерация
    #39428476
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<ROOT>
	<BST>
		<ID>1</ID>
		<GROUP>1</GROUP>
	</BST>
	<BST>
		<ID>2</ID>
		<GROUP>3</GROUP>
	</BST>
	<BST>
		<ID>3</ID>
		<GROUP>2</GROUP>
	</BST>
	<BST>
		<ID>4</ID>
		<GROUP>1</GROUP>
	</BST>
	<BST>
		<ID>5</ID>
		<GROUP>3</GROUP>
	</BST>	
	<BST>
		<ID>6</ID>
		<GROUP>2</GROUP>
	</BST>
	<BST>
		<ID>7</ID>
		<GROUP>1</GROUP>
	</BST>
	<BST>
		<ID>8</ID>
		<GROUP>3</GROUP>
	</BST>	
	<BST>
		<ID>9</ID>
		<GROUP>2</GROUP>
	</BST>	
	<BST>
		<ID>10</ID>
		<GROUP>1</GROUP>
	</BST>	
</ROOT>



XSL
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:BSmart="urn:BSmart">
    <xsl:key name="GR" match="BST" use ="GROUP"/>
    <xsl:template match="ROOT">
        <xsl:apply-templates select="BST[generate-id() = generate-id(key('GR', GROUP))]">
			<xsl:sort select="GROUP"  data-type="number" order="ascending"/>
		</xsl:apply-templates>
    </xsl:template>

    <xsl:template match="BST">

        <xsl:for-each select="key('GR', GROUP)">
            <xsl:sort select="ID"  data-type ="number" order="ascending"/>
            <xsl:variable name="curPos">
                <xsl:number count="BST/GROUP" level="any"/>
            </xsl:variable>
            G=<xsl:value-of select="GROUP"/>;POS=<xsl:value-of select="$curPos"/>
        </xsl:for-each >
    </xsl:template>
</xsl:stylesheet>



как получить такой результат?
G=1;POS=1
G=1;POS=2
G=1;POS=3
G=1;POS=4
G=2;POS=5
G=2;POS=6
G=2;POS=7
G=3;POS=8
G=3;POS=9
G=3;POS=10
то есть POS получает последовательные номера после группировки
Спасибо
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL GROUP и последовательная нумерация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]