У меня есть XML, содержащий информацию о нескольких записях.
Я хочу, чтобы дочерние элементы были сгруппированы на основе соответствующего дочернего узла.
Мне нужны сценарии XSLT, которые выполняют следующие действия
Я хочу сгруппировать все теги 'info' в один 'body' , если 'MainId' одинаков для нескольких 'тело' элементов.Мне нужно, чтобы эта группировка выполнялась независимо от значений в других узлах внутри 'body' .
Входной XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns="12345">
<Main>
<Header>
<DateTime>2019-02-21- 6:36:43 PM</DateTime>
<NbOfRecords>2</NbOfRecords>
</Header>
<Body>
<Id>1000198</Id>
<Info>
<CustId>
<Id>
<MainId>AB123</MainId>
</Id>
</CustId>
<AddInfo>
<info>
<Amt>
<ActAmt Ccy="Test">149500</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="Test">0</NegAmt>
</Amt>
</info>
</AddInfo>
</Info>
</Body>
<Body>
<Id>1000199</Id>
<Info>
<CustId>
<Id>
<MainId>AB123</MainId>
</Id>
</CustId>
<AddInfo>
<info>
<Amt>
<ActAmt Ccy="Test">16000</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="Test">0</NegAmt>
</Amt>
</info>
</AddInfo>
</Info>
</Body>
<Body>
<Id>1000200</Id>
<Info>
<CustId>
<Id>
<MainId>BC124</MainId>
</Id>
</CustId>
<AddInfo>
<info>
<Amt>
<ActAmt Ccy="GBP">16000</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="GBP">12000</NegAmt>
</Amt>
</info>
</AddInfo>
</Info>
</Body>
</Main>
Ожидаемый выходной XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns="12345">
<Main>
<Header>
<DateTime>2019-02-21- 6:36:43 PM</DateTime>
<NbOfRecords>2</NbOfRecords>
</Header>
<Body>
<Id>1000198</Id>
<Info>
<CustId>
<Id>
<MainId>AB123</MainId>
</Id>
</CustId>
<AddInfo>
<info>
<Amt>
<ActAmt Ccy="Test">149500</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="Test">0</NegAmt>
</Amt>
</info>
<info>
<Amt>
<ActAmt Ccy="Test">16000</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="Test">0</NegAmt>
</Amt>
</info>
</AddInfo>
</Info>
</Body>
<Body>
<Id>1000200</Id>
<Info>
<CustId>
<Id>
<MainId>BC124</MainId>
</Id>
</CustId>
<AddInfo>
<info>
<Amt>
<ActAmt Ccy="GBP">16000</ActAmt>
</Amt>
</info>
<info>
<Amt>
<NegAmt Ccy="GBP">12000</NegAmt>
</Amt>
</info>
</AddInfo>
</Info>
</Body>
</Main>
Вот XSLT, содержащий мой входной XML: http://xsltfiddle.liberty -development.сеть / pPzifp9