Я хочу сравнить две записи в одном XML-файле и получить соответствующие записи. (Примечание: я не буду в состоянии изменить InputSchema)Xslt цикл через различные узлы и объединить в BizTalk map
InputRequest1 содержит идентификаторы (ID и IDScheme) и которые я хочу сравнить с InputRequest2, который содержит несколько продуктов и соответствующие идентификаторы (ID и IDScheme) и регистрационные данные (ID и IDScheme - Login). Я должен сравнить InputRequest1 с InputRequest2 узлами и извлечь соответствующие данные о продукте, чтобы сформировать Выход. Выход должен содержать данные для входа и ID как , как показано в примере ниже.
Пример XML:
<ns0:Root xmlns:ns0="http://schemas.microsoft.com/BizTalk/2003/aggschema">
<InputMessagePart_0>
<ns1:InputRequest1 xmlns:ns1="http://myClient/schema/5.0.0/">
<ns1:Identifier>
<ns1:ID>123456</ns1:ID>
<ns1:IDScheme>ABC</ns1:IDScheme>
</ns1:Identifier>
<ns1:Identifier>
<ns1:ID>654321</ns1:ID>
<ns1:IDScheme>CBA</ns1:IDScheme>
</ns1:Identifier>
<ns1:Identifier>
<ns1:ID>2356152</ns1:ID>
<ns1:IDScheme>ZZZ</ns1:IDScheme>
</ns1:Identifier>
</ns1:InputRequest1>
</InputMessagePart_0>
<InputMessagePart_1>
<ns1:InputRequest2 xmlns:ns1="http://myClient/schema/5.0.0/">
<ns1:Products>
<ns1:ProfileContext>
<ns1:LoginID>
<ns1:ID>login123</ns1:ID>
<ns1:IDScheme>USERID</ns1:IDScheme>
</ns1:LoginID>
</ns1:ProfileContext>
<ns1:ProductDetails>
<ns1:ProductIdentifier>
<ns1:ID>123456</ns1:ID>
<ns1:IDScheme>ABC</ns1:IDScheme>
</ns1:ProductIdentifier>
</ns1:ProductDetails>
</ns1:Products>
<ns1:Products>
<ns1:ProfileContext>
<ns1:MemberIdentifier>
<ns1:ID>login789</ns1:ID>
<ns1:IDScheme>USERTID</ns1:IDScheme>
</ns1:MemberIdentifier>
</ns1:ProfileContext>
<ns1:ProductDetails>
<ns1:ProductIdentifier>
<ns1:ID>9876543</ns1:ID>
<ns1:IDScheme>DEF</ns1:IDScheme>
</ns1:ProductIdentifier>
</ns1:ProductDetails>
</ns1:Products>
<ns1:Products>
<ns1:ProfileContext>
<ns1:MemberIdentifier>
<ns1:ID>login456</ns1:ID>
<ns1:IDScheme>USERTID</ns1:IDScheme>
</ns1:MemberIdentifier>
</ns1:ProfileContext>
<ns1:ProductDetails>
<ns1:ProductIdentifier>
<ns1:ID>456789</ns1:ID>
<ns1:IDScheme>CBA</ns1:IDScheme>
</ns1:ProductIdentifier>
</ns1:ProductDetails>
</ns1:Products>
</ns1:InputRequest2>
</InputMessagePart_1>
</ns0:Root>
Я хочу выход быть:
<ns1:OutputRequest xmlns:ns1="http://myClientOutput/schema/5.0.0/">
<ns1:Identifier>
<ns1:ID>login123</ns1:ID>
<ns1:IDScheme>USERID</ns1:IDScheme>
</ns1:Identifier>
<ns1:Identifier>
<ns1:ID>123456</ns1:ID>
<ns1:IDScheme>ABC</ns1:IDScheme>
</ns1:Identifier>
<ns1:Identifier>
<ns1:ID>login456</ns1:ID>
<ns1:IDScheme>USERID</ns1:IDScheme>
</ns1:Identifier>
<ns1:Identifier>
<ns1:ID>654321</ns1:ID>
<ns1:IDScheme>CBA</ns1:IDScheme>
</ns1:Identifier>
</ns1:OutputRequest>
Можете ли вы помочь мне в XSLT для этой трансформации? Благодарю.
Посмотрите на группировку Muenchian. Есть много сообщений об этом на этом сайте и в других местах в Интернете. Если у вас есть более конкретная проблема, не стесняйтесь редактировать этот пост с более конкретной (и воспроизводимой) задачей. –
Добро пожаловать в переполнение стека! Пожалуйста, покажите, что вы пробовали. В рамках [тематических вопросов для StackOverflow] (http://stackoverflow.com/help/on-topic) вы должны задать вопрос о конкретной проблеме_, показывая, что вы сделали, и где вы застряли, в противоположность просто попросить других сделать работу за вас. См. Также [ask] и [mcve]. – Abel