我有以下XML消息,我需要在名称/值对中,并且只有在extendedDataElements标记的name属性中存在"Payment"值时才需要填充某些值。如果值为"Payment",则:
- 创建一个新的名称/对,名称为Status,值为情境限定符 中的数据然后用一些静态值填充情境限定符,我将硬编码
- 然后将名称/值中的amount标签改为带有相应值的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
您是否尝试过定义像下面这样的模板来定义数据的自定义处理?我认为它应该能很好地处理那个案子。这是处理问题的声明式方法。
<xsl:template match="extendedDataElements[@name='Payment']">
</xsl:template>