На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ANDLL
  
> Группировка из списка с аналогом group by
    Привет. Что-то не могу сообразить, как сгруппировать вывод в моем случае. Пример - список книг и их авторов. Нужно сгруппировать по авторам. Исходный XML вот такой:

    ExpandedWrap disabled
      <books>
          <book>
              <name>Барышня крестьянка</name>
              <author>Пушкин</author>
          </book>
          <book>
              <name>Мцыри</name>
              <author>Лермонтов</author>
          </book>
          <book>
              <name>Повести Белкина</name>
              <author>Пушкин</author>
          </book>
      </books>


    На выходе должно быть так:

    ExpandedWrap disabled
      <select>
          <optgroup label="Лермонтов">
              <option>Мцыри</option>
          </optgroup>
          <optgroup label="Пушкин">
              <option>Барышня крестьянка</option>
              <option>Повести Белкина</option>
          </optgroup>
      </select>


    Думаю что надо сделать два вложенных xsl:for-each, но непонятно, как будет выглядеть внешний. Нужно что-то типа group by как в MySQL. Но из тегов, влияющих на for-each, есть только sort. Или может быть есть более простое решение?

    Спасибо.
    Сообщение отредактировано: W4C -
      гугл в помощь, ня: "xslt группировка"
      в частности http://xpoint.ru/know-how/XML/XSLT/CookBook/Grouping
        Цитата ss @
        гугл в помощь, ня: "xslt группировка"
        в частности http://xpoint.ru/know-how/XML/XSLT/CookBook/Grouping

        Да, это то, что нужно. Спасибо!
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0163 ]   [ 14 queries used ]   [ Generated: 14.05.24, 17:50 GMT ]