У меня есть следующее XML-сообщение, которое мне нужно в парах имя / значение, и мне нужно заполнить определенные значения только в том случае, если в атрибуте name тега extendedDataElements присутствует значение «Payment». Если значение равно «Оплата», то:
- Создается новое имя / пара с именем Status в качестве имени, а значением являются данные, которые находятся в situQualifier
- Затем в полеQualifier добавляется некоторое статическое значение, которое я буду жестко кодировать
- Тег количества в имени / значении затем изменяется на trnAmount с соответствующим значением.
Если значение атрибута name отличается от «Payment», то оно просто возвращается к базовому преобразованию «element_attribute = value». Я выполнил базовое преобразование для получения пар имя-значение, но у меня возникли большие проблемы с условным шагом для применения этих модификаций на основе этого значения extendedDataElements.
Спасибо за любую помощь.
XML
<cbe:CommonBaseEvent>
<sourceComponentId component="28591" />
<situationInformation extensionName="Payment">
<extendedDataElements name="Payment">
<children name="amount">
<values>100</values>
</children>
</extendedDataElements>
<situationType situationQualifier="PaymentCompletionReceived" reasoningScope="INFO"/>
</situationInformation>
</cbe:CommonBaseEvent>
Требуемый выход:
sourceComponentId_component=28591, extendedDataElements_name=Channel, trnAmount=100, Status=PaymentCompletionReceived, situationType_situationQualifier=StaticValueHere, situationType_reasoningScope=INFO