Для каждого узла «агентства» мне нужно найти элементы «stmt», которые имеют одинаковые значения ключа1, key2, key3 и выводят только один узел «stmt» с «comm» и «предварительные» значения суммируются вместе. Для любых элементов «stmt» внутри этого «агентства», которые не соответствуют каким-либо другим элементам «stmt» на основе key1, key2 и key3, мне нужно вывести их как есть. Поэтому после трансформации первый узел «агентства» будет иметь только два «stmt» узла (один подведенный), а второй «агентский» узел будет передан так, как это происходит потому, что ключи не совпадают. Решения XSLT 1.0 или 2.0 в порядке ... хотя моя таблица стилей в настоящее время 1.0. Обратите внимание, что узлы агентства могут иметь любое количество элементов «stmt», которые имеют соответствующие ключи, которые необходимо сгруппировать и суммировать, и любое число, которое этого не делает.Как группировать и суммировать значения в XSLT
<statement>
<agency>
<stmt>
<key1>1234</key1>
<key2>ABC</key2>
<key3>15.000</key3>
<comm>75.00</comm>
<prem>100.00</prem>
</stmt>
<stmt>
<key1>1234</key1>
<key2>ABC</key2>
<key3>15.000</key3>
<comm>25.00</comm>
<prem>200.00</prem>
</stmt>
<stmt>
<key1>1234</key1>
<key2>ABC</key2>
<key3>17.50</key3>
<comm>25.00</comm>
<prem>100.00</prem>
</stmt>
</agency>
<agency>
<stmt>
<key1>5678</key1>
<key2>DEF</key2>
<key3>15.000</key3>
<comm>10.00</comm>
<prem>20.00</prem>
</stmt>
<stmt>
<key1>5678</key1>
<key2>DEF</key2>
<key3>17.000</key3>
<comm>15.00</comm>
<prem>12.00</prem>
</stmt>
</agency>
Хороший вопрос (+1). См. Мой ответ для полного решения XSLT 1.0. –