Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL GROUP и последовательная нумерация / 1 сообщений из 1, страница 1 из 1
28.03.2017, 14:46
    #39428476
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSL GROUP и последовательная нумерация
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
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL GROUP и последовательная нумерация / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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