powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка внутри одного элемента
5 сообщений из 5, страница 1 из 1
Сортировка внутри одного элемента
    #36846983
Topcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня имеется XML-файл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<s>
 <s>
   <a n="data01"> 1 </a>
   <a n="info01"> 2 </a>
   <a n="value01"> 3 </a>
   <a n="digit01"> 4 </a>
 </s>
</s>

Мне надо рассортировать по элементу a. Я использую следующий код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xsl:stylesheet version = '1.0' 
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
   
<xsl:template match="/">

      <xsl:for-each select="s/s">
      <xsl:sort select="a" order="descending"/>
      <xsl:value-of select="a"/><br />
      </xsl:for-each>
      
</xsl:template>      

</xsl:stylesheet>

Но сортировка не работает. В большинстве примеров показывается, как сортировать a, если они находятся в разных s, но вот такого, чтобы множество a находилось внутри одного s я не нашел... Надеюсь на вашу помощь!
...
Рейтинг: 0 / 0
Сортировка внутри одного элемента
    #36847057
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Topcat,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:template match="/">
		<xsl:for-each select="s/s/a">
			<xsl:sort select="." order="descending"/>
			<xsl:value-of select="."/>
			<br/>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Сортировка внутри одного элемента
    #36847096
Topcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Ошибка была так близко...
...
Рейтинг: 0 / 0
Сортировка внутри одного элемента
    #36847250
Andry Trushin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Topcat,

Код: plaintext
1.
2.
3.
4.
<xsl:for-each select="s/s/a">
	<xsl:sort select="text()" data-type="number" order="descending"/>
	<xsl:value-of select="."/>
	<br/>
</xsl:for-each>

1. лучше явно указывать что сортируем, точка - штука опасная
2. в примере приведены цифры, если мы не укажем дата-тайп, то они в некоторый момент будут сортироваться так:
1
11
12
2
3
...
...
Рейтинг: 0 / 0
Сортировка внутри одного элемента
    #36847411
Topcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже спасибо за совет!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка внутри одного элемента
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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