powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT: цикл/группы по distinct значениям
3 сообщений из 3, страница 1 из 1
XSLT: цикл/группы по distinct значениям
    #38235402
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то сделать в XSLT такое?

Вход:

<Item>
<ID>123</ID>
<Order>1</Order>
<Item>
<Item>
<ID>234</ID>
<Order>2</Order>
<Item>
<Item>
<ID>345</ID>
<Order>2</Order>
<Item>

Выход:

<Group>
<Item>
<ID>123</ID>
<Item>
</Group>
<Group>
<Item>
<ID>234</ID>
<Item>
<Item>
<ID>345</ID>
<Item>
</Group>

То есть надо сгруппировать по уникальным значениям Order.
...
Рейтинг: 0 / 0
XSLT: цикл/группы по distinct значениям
    #38238522
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил,

конечно можно
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
	<xsl:output method="xml" indent="yes" />

	<xsl:key name="order" match="//Item" use="Order/text()" />

	<xsl:template match="/">
		<xsl:for-each select="//Item[generate-id()=generate-id(key('order', Order/text()))]">
			<Group order="{Order/text()}">
				<xsl:for-each select="key('order', current()/Order/text())">
					<xsl:copy>
						<xsl:copy-of select="node()[not(name()='Order')]" />
					</xsl:copy>
				</xsl:for-each>
			</Group>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
XSLT: цикл/группы по distinct значениям
    #38243808
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто! Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT: цикл/группы по distinct значениям
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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