Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка по числовому столбцу / 1 сообщений из 1, страница 1 из 1
26.03.2007, 11:22
    #34414909
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка по числовому столбцу
Всем привет. меня уже несколько раз спрашивали про сортировку, если это символьные данные, то все достаточно просто. Но если надо отсортировать числа по значению, то нифига не работает. Совсем недавно нашел как это обходится.
К примеру у нас есть xml:
?xml version="1.0" encoding="UTF-8" ?>
<Result>
<Sale>
<title>12</title>
<AssessedValue1>value_2</AssessedValue1>
</Sale>
<title>14</title>
<AssessedValue1>value_3</AssessedValue1>
</Sale>
</Sale>
<title>2</title>
<AssessedValue1>value_1</AssessedValue1>
</Sale>
</Sale>
<title>43</title>
<AssessedValue1>value_4</AssessedValue1>
</Sale>
</Result>
Логически верным было бы отсортировать в следующем порядке: 2, 12, 14, 43
Но с таким кодом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  <xsl:template match="/">
  	<root>
	<xsl:for-each select="//title">
	 <xsl:sort select="title"/>
  	<xsl:value-of select="."/>
	</xsl:for-each>
  	</root>	
</xsl:template>
Лишь получим: 12 14 2 43.
Правильно отсортировать буде так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  <xsl:template match="/">
  	<root>
	<xsl:for-each select="//title">
	 <xsl:sort data-type="number"/>
  	<xsl:value-of select="."/>
	</xsl:for-each>
  	</root>	
</xsl:template>
И результат будет то что надо :2 12 14 43
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка по числовому столбцу / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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