XSLT备用解析输出取决于属性的特定值

时间:2011-10-12 21:31:33

标签: xml templates xslt xslt-1.0

我在名称/值对中需要以下XML消息,并且只有在extendedDataElements标记的name属性中存在“Payment”值时才需要填充某些值。如果值为“付款”,则:

  • 创建一个新名称/对,其中Status为名称,值为situationQualifier中的数据
  • 然后,情境验证器会填充一些我将硬编码的静态值
  • 然后将名称/值中的金额标签更改为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

1 个答案:

答案 0 :(得分:0)

您是否尝试定义类似下面的模板来定义数据的自定义处理?我认为它应该完美地处理这种情况。这是处理问题的声明方式。

<xsl:template match="extendedDataElements[@name='Payment']">

</xsl:template>