Сегодняшняя проблема заключалась в группировке в 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>
EDIT:
Я также хочу убедиться, что регионы окажутся в их собственной стране, даже если есть дубликаты. Я соответственно отредактировал ответ.
Кроме того, я хотел бы намекнуть о xsltfiddle.liberty-development.net как о простом способе разработки XSLT методом проб и ошибок ...