Требуется преобразовать запрос от системы A для финтинга в запрос системы B.
Предположим, у меня есть документ XML, который выглядит так из системы A:
<root>
<Bundle>
<authors>
<author>
<authorID>100</authorID>
<authorName>Kathisiera</authorName>
</author>
<author>
<authorID>200</authorID>
<authorName>Bates</authorName>
</author>
<author>
<authorID>300</authorID>
<authorName>Gavin King</authorName>
</author>
</authors>
<books>
<book>
<bookOrderID>1111</bookOrderID>
<bookName>Head First Java</bookName>
<bookRefID>100</bookRefID>
</book>
<book>
<bookOrderID>5555</bookOrderID>
<bookName>Head First Servlets</bookName>
<bookRefID>200</bookRefID>
</book>
<book>
<bookOrderID>1111</bookOrderID>
<bookName>Hibernate In Action</bookName>
<bookRefID>300</bookRefID>
</book>
</books>
</Bundle>
Я должен вписать этот запрос в структуру запроса системы B:
<root>
<Bundle>
<authors>
<author>
<authorID>100</authorID>
<authorName>Kathisiera</authorName>
</author>
<author>
<authorID>300</authorID>
<authorName>Gavin King</authorName>
</author>
</authors>
<books>
<book>
<bookOrderID>1111</bookOrderID>
<bookName>Head First Java</bookName>
<bookRefID>100</bookRefID>
</book>
<book>
<bookOrderID>1111</bookOrderID>
<bookName>Hibernate In Action</bookName>
<bookRefID>300</bookRefID>
</book>
</books>
</Bundle>
<Bundle>
<authors>
<author>
<authorID>200</authorID>
<authorName>Bates</authorName>
</author>
</authors>
<books>
<book>
<bookOrderID>5555</bookOrderID>
<bookName>Head First Servlets</bookName>
<bookRefID>200</bookRefID>
</book>
</books>
</Bundle>
Сначала я должен сгруппировать book
внутри Bundle
на основе bookOrderID
. Затем сгруппируйте author
внутри Bundle
, сравнив bookRefID
с authorID
.
Я пытался использовать key() generate-id()
функцию xslt. Но не удалось получить ожидаемый результат.
Пожалуйста, помогите мне найти решение.