Я смотрю на мюнхенскую группировку. Я попытался найти примеры, которые похожи на мой XML, но не могу найти ни одного. Большинство примеров хорошо структурированы, а мой - запутанный.
Вот сокращенная версия моего XML (обратите внимание, что я не могу изменить структуру XML, потому что это стандартная вещь и не в моих руках), и я использую XSLT 1, потому что система теперь поддерживает только эту версию.
<object>
<creator id="123">
<name>ABC</name>
<city>Hamilton</city>
</creator>
<creator><references>456</references></creator>
<contact><references>123</references></contact>
<creator id="456">
<name>XYZ</name>
<city>New York</city>
</creator>
<associatedParty><references>123</references>
<role>Sponsor</role>
</associatedParty>
</object>
Вывод, который я хочу получить:
<party id="123">
<name>ABC</name>
<city>Hamilton</city>
<role>Creator</role>
<role>Contact</role>
<role>Sponsor</role>
</party>
<party id="456">
<name>XYZ</name>
<city>New York</city>
<role>Creator</role>
<role>Contact</role>
</party>
Теперь атрибут id используется в качестве значения для элемента reference. И тэг в выходных данных может быть либо создателем, контактом, либо чем-либо, находящимся внутри элемента, если он находится под элементом relatedParty.
Я застрял с созданием ключа для группировки их по атрибуту id / reference. Насколько я вижу, примеры использования xsl: key предназначены только для узлов с одинаковыми именами, а пример, который я опубликовал, имеет разные имена узлов. Любая помощь будет оценена !!!!