【问题标题】:XML to Object MULE duplicate nodes with same nameXML to Object MULE 具有相同名称的重复节点
【发布时间】:2018-10-16 20:54:20
【问题描述】:

我需要在 MULE 中将 xml 转换为 java 对象。

<porto>
  <nome>example</nome>
  <nave>
     <x> a </x>
     <y> b </y>
  </nave>
  <nave>
     <x> c </x>
     <y> d </y>
  </nave>
</porto>

我遇到的问题是我找不到使用“XML to Object”组件将双“nave”组件保存到类中的方法。

我无法使用企业版,也无法更改 xml。我也不能使用 JAXB 方法。

【问题讨论】:

    标签: mule nodes


    【解决方案1】:

    它不起作用,因为转换创建了一个以 nave 作为键的 Java 映射,并且因为键是相同的,所以其中一个 nave 元素覆盖了另一个。您将需要为此编写一个自定义转换器。

    使用 DataWeave 可以编写一个简单的脚本来进行转换,但它在社区版本中不可用。

    示例数据编织

    %dw 1.0
    %output application/java
    ---
    porto: { 
        nome: payload.porto.nome,
        nave: payload.porto.*nave
    }
    

    【讨论】:

    • 很遗憾,我无法使用允许您使用 DataWeave 的企业版。我设法使用类变量上的注释来做到这一点:@XStreamImplicit private List nave;
    【解决方案2】:

    我设法在课堂上使用正确的注释解决了这个问题:

    @XStreamImplicit
    private List<Nave> nave;
    

    【讨论】:

      猜你喜欢
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多