Сегодняшней задачей было группирование в XSLT 1.0. Обнаружил нечто, называемое ключами и мюнхианской группировкой.
Входной XML:
<Items>
<Item>
<ID>1</ID>
<Name>A</Name>
<Country>Sweden</Country>
<Region>Småland</Region>
</Item>
<Item>
<ID>2</ID>
<Name>B</Name>
<Country>Sweden</Country>
<Region>Norrland</Region>
</Item>
<Item>
<ID>3</ID>
<Name>C</Name>
<Country>USA</Country>
<Region>Alaska</Region>
</Item>
<Item>
<ID>4</ID>
<Name>D</Name>
<Country>USA</Country>
<Region>Texas</Region>
</Item>
<Item>
<ID>5</ID>
<Name>E</Name>
<Country>Sweden</Country>
<Region>Norrland</Region>
</Item>
</Items>
Мне нужно преобразовать XML в лучшую структуру, и из этого образца XML мне не нравится получать элементы, структурированные по странам и регионам. Ниже приведен желаемый результат, в котором также сортируются страна и регион:
<Items>
<Country Name="Sweden">
<Region Name="Norrland">
<Item>
<ID>2</ID>
<Name>B</Name>
</Item>
<Item>
<ID>5</ID>
<Name>E</Name>
</Item>
</Region>
<Region Name="Småland">
<Item>
<ID>1</ID>
<Name>A</Name>
</Item>
</Region>
</Country>
<Country Name="USA">
<Region Name="Alaska">
<Item>
<ID>3</ID>
<Name>C</Name>
</Item>
</Region>
<Region Name="Texas">
<Item>
<ID>4</ID>
<Name>D</Name>
</Item>
</Region>
</Country>
</Items>
ИЗМЕНИТЬ:
Я также хочу убедиться, что регионы оказываются в своей стране, даже если есть дубликаты. Я отредактировал ответ соответственно.
Кроме того, я хотел бы намекнуть на xsltfiddle.liberty-development.net как на простой способ занимаюсь разработкой XSLT методом проб и ошибок...