powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка
7 сообщений из 7, страница 1 из 1
Сортировка
    #35914772
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть имеется следующая структура
Код: plaintext
1.
2.
3.
4.
5.
<item>
    <name>Name</name>
    <title>Title</title>
</item>


Мне нужно сделать сортировку этих айтемов по name, но есть условие, что если поле namе - пустое, то в качестве сортируемого условия этого айтема должно выступать поле title, т.е. name становится равен title
Спасибо.
...
Рейтинг: 0 / 0
Сортировка
    #35914906
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решено
просто сортировал по конкатенации name, title
...
Рейтинг: 0 / 0
Сортировка
    #35919450
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, что ли?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<item>
    <name>a</name>
    <title>z</title>
</item>
<item>
    <name>aa</name>
    <title></title>
</item>
...
Рейтинг: 0 / 0
Сортировка
    #35919591
Grundiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
<xsl:sort select="name"/><xsl:sort select="title"/>
наврное так. Все записи с пустым полем name будут сортироваться в первую очередь, а так как они не различимы между собой -- в силу вступает второй параметр сортировки -- по тайтлу
...
Рейтинг: 0 / 0
Сортировка
    #35919609
Grundiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще можно попробовать так, но я далеко не уверен, что проканает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:sort>
   <xsl:attribute name="select">
        <xsl:choose>
               <xsl:when test="name/text() != ''">name</xsl:when>
               <xsl:otherwise>title</xsl:otherwise>
        </xsl:choose>
   </xsl:attribute>
</xsl:sort>
...
Рейтинг: 0 / 0
Сортировка
    #35921278
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grundiss
Код: plaintext
<xsl:sort select="name"/><xsl:sort select="title"/>
наврное так. Все записи с пустым полем name будут сортироваться в первую очередь, а так как они не различимы между собой -- в силу вступает второй параметр сортировки -- по тайтлу
это не то, что мне нужно, но судя по 2-му ответу
GrundissА еще можно попробовать так, но я далеко не уверен, что проканает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:sort>
   <xsl:attribute name="select">
        <xsl:choose>
               <xsl:when test="name/text() != ''">name</xsl:when>
               <xsl:otherwise>title</xsl:otherwise>
        </xsl:choose>
   </xsl:attribute>
</xsl:sort>

Вы поняли, что мне нужно (правда, не пробовал на работоспособность), но, имхо, мой вариант логичнее
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сортировка
    #37355095
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasionario,

по хорошему это должно было быть так
Код: plaintext
<xsl:sort select="name[text() != '']|title"/>
Теперь уже поздно... :-)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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