Как разбить список на 3 одинаковых столбца

dvp

Новичок
Как разбить список на 3 одинаковых столбца

Здавствуйте мыслители. Помогите примать алгоритм разбиения нижеследующего документа при помощи XSLT на три группы, содерщацие в себе примерно равное количество item+subitem (пример ниже). Т.е. фактически мне надо разбить список на 3 примерно равных

Исходный документ:
Код:
<list>
  <item>
    <subitem/>
     ...........
    <subitem/>
  </item>
  ..............
  <item>
    <subitem/>
     ...........
    <subitem/>
  </item>
</list>
(т.е. list содержит в себе >= 1 элементов item, а item содержит в себе >= 1 элементов subitem)

Документ, который надо получить:

Код:
<result>
  <column>
    <item>
      <subitem/>
       ...........
      <subitem/>
    </item>
    ......
    <item>
      <subitem/>
       ...........
      <subitem/>
    </item>
  <column>
  .........
  <column>
    <item>
      <subitem/>
       ...........
      <subitem/>
    </item>
    ......
    <item>
      <subitem/>
       ...........
      <subitem/>
    </item>
  <column>
</result>
Повторюсь, что нужно разбить не на три столбца с равным количеством item, а на три столбца с примерно равным количеством item и subitem.
Совершенно не обязательно, чтобы алгоритм мог разбивать как на 3, так и на4, на 5, .... и т.д. столбцов. Достаточно одного
 

dvp

Новичок
Эх..... разбить одномерный список на столбцы - не вопрос.
Мне нужно разбить список, с вложенным списком, да так, чтобы по высоте примерно равно получилось.

Если прикинуь, то задачу можно свести к разбиению списка, у которого каждый элемент имеет высоту (count(subitem)), на N столбцов, примерно равных по высоте
 

slach

Новичок
а через CSS не пробовал ???
весь список запихнуть в
<ul>
каждому item задать <li>
а каждому

ну а потом в css
ul {
width: 100px;
padding:0px;
margin: 0px;
}

li {
display:block;
width: 100px;
float:left;
}

li subitem {
heifht:20px;
}

чтото в этом духе...

посмотри на sqlmanager.net
там подобным образом решено...
правда ... столбцов не три... а больше может быть...
но попробуй
 
Сверху