Я преобразовываю некоторый xml с помощью xslt (версия 1.0, с использованием MSXSL).
Скажем, мои XML-данные выглядят так:
<table>
<record><name>A</name><value>a</value><size>10</size></record>
<record><name>A</name><value>b</value><size>35</size></record>
<record><name>A</name><value>c</value><size>60</size></record>
<record><name>B</name><value>x</value><size>15</size></record>
<record><name>B</name><value>y</value><size>90</size></record>
<record><name>B</name><value>z</value><size>20</size></record>
...
</table>
Моя цель:
- чтобы сгруппировать записи по
<name>
- на группу, определите максимальное
<size>
, скажемmaxsize
- сортировать группы по их
maxsize
(по убыванию) - на группу, перечислить записи (в исходном порядке)
Итак, результат может быть таким:
<table>
<group>B<maxsize>90</maxsize>
<record><value>x</value><size>15</size>
<record><value>y</value><size>90</size>
<record><value>z</value><size>20</size>
</group>
<group>A<maxsize>60</maxsize>
<record><value>a</value><size>10</size>
<record><value>a</value><size>35</size>
<record><value>a</value><size>60</size>
</group>
</table>
Теперь шаги 1, 2 и 4, я могу это сделать. Но ... как я могу упорядочить группы по их максимальному размеру?
Я попытался создать новый набор узлов в переменной, содержащий группы. Я могу построить такой набор, но могу получить к нему доступ только как строку.
Должно быть возможно, правда?