Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по номеру 
:(
    Опции темы
Janita
Дата 8.7.2005, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.11.2004

Репутация: нет
Всего: 1



Есть такой XML
Код

<trackss> 
  <tracks>  
     <tracknumb>1</tracknumb> 
     <trackname>Имя1</trackname> 
  </tracks>
....
<tracks>
    <tracknumb>15</tracknumb> 
     <trackname>Имя15</trackname> 
</tracks>  
....
 <tracks>
    <tracknumb>15а </tracknumb> 
     <trackname>Имя15а</trackname> 
</tracks> 
</trackss> 


Сортирую по номерам:
Код

<xsl:for-each select="//trackss/tracks">
    <xsl:sort select="tracknumb" data-type="number"/>


Все бы ничего, но номер 15а получается на первом месте. Как сделать, чтобы он был сразу после 15 или 14?
PM MAIL   Вверх
Bikutoru
Дата 8.7.2005, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



15а - это же не число. Вроде бы так работает:

Код

<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/trackss">
    <xsl:for-each select="tracks">
        <xsl:sort select="tracknumb/text()" />
        
        <xsl:value-of select="trackname" />
        <BR />
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>


Это сообщение отредактировал(а) Bikutoru - 8.7.2005, 09:10


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Janita
Дата 8.7.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.11.2004

Репутация: нет
Всего: 1



Bikutoru В этом случае получается следующий порядок:
1
10
12
...
19
2
20
21
...
3

15а то на месте, но надо чтобы все-таки все номера шли по порядку
PM MAIL   Вверх
Bikutoru
Дата 8.7.2005, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Janita, я уже тоже об этом подумал smile
Тогда могу предложить немного изменить структуру XML - вынести букву в отдельный тег:
Код

<?xml version="1.0" encoding="windows-1251" ?>
<?xml-stylesheet href="11.xsl" type="text/xsl" ?>

<trackss> 
  <tracks>  
     <tracknumb>1</tracknumb> 
     <trackname>Имя1</trackname> 
  </tracks>
  <tracks>  
     <tracknumb>2</tracknumb> 
     <trackname>Имя2</trackname> 
  </tracks>
  <tracks>  
     <tracknumb>21</tracknumb> 
     <trackname>Имя21</trackname> 
  </tracks>
  <tracks>  
     <tracknumb>7</tracknumb> 
     <trackname>Имя7</trackname> 
  </tracks>
  <tracks>  
     <tracknumb>11</tracknumb> 
     <track-subnumb>б</track-subnumb> 
     <trackname>Имя11б</trackname> 
  </tracks>
<tracks>
    <tracknumb>15</tracknumb> 
     <trackname>Имя15</trackname> 
</tracks>  
<tracks>
    <tracknumb>14</tracknumb> 
     <trackname>Имя14</trackname> 
</tracks>  
 <tracks>
    <tracknumb>15</tracknumb> 
    <track-subnumb>a</track-subnumb>
     <trackname>Имя15а</trackname> 
</tracks> 
</trackss> 


И обработать так:

Код

<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/trackss">
    <xsl:for-each select="tracks">
        <xsl:sort select="tracknumb" data-type="number" />
        <xsl:sort select="track-subnumb" />
        
        <xsl:value-of select="trackname" />
        <BR />
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>


Это сообщение отредактировал(а) Bikutoru - 8.7.2005, 09:54


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Janita
Дата 8.7.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.11.2004

Репутация: нет
Всего: 1



Bikutoru К сожалению формат xml я поменять не могу, это зависит не от меня.
Есть вообще выход в этой ситуации?
PM MAIL   Вверх
Bikutoru
Дата 8.7.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Цитата
К сожалению формат xml я поменять не могу

В таком случае я помочь не могу. Есть мысль, что здесь стоит использовать строковые функции, но в них я не силен... Возможно, сможет помочь кто-то из более квалифицированных посетителей этого раздела...

Это сообщение отредактировал(а) Bikutoru - 8.7.2005, 16:49


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0690 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.