将数组附加到 xml 对象

append array to xml object

我有以下输入

{
    "array": [
        {
            "name": "value1"
        },
        {
            "name": "value2"
        },
        {
            "name": "value3"
        }
    ]
}

并想要以下输出

<a>
    <b />
    <c>value1</c>   
    <c>value2</c>   
    <c>value3</c>    
</a>

我能得到的最接近的是这个

<a>
  <b>
    <c>value1</c>
    <c>value2</c>
    <c>value3</c>
  </b>
</a>

用这个数据编织

%dw 2.0
output application/xml writeDeclaration=false
---

a: b: (payload.*array map {c: $.name})

感谢任何帮助谢谢

加分.. 如果有人可以帮助生成以下示例 json payload

<a>
    <b />
    <c>value1</c>
    <d>e</d>    
    <c>value2</c>
    <d>e</d>        
    <c>value3</c>
    <d>e</d>         
</a>

试试这个方法:

脚本

%dw 2.0
output application/xml writeDeclaration=false
---

a : { 
 b: {}
}
 ++ {
  (payload.*array map {c: $.name})
 }

通过这种方法,您可以获得第二个预期输出:

脚本



    %dw 2.0
    output xml writeDeclaration=false
    ---

    a : { 
    b:''
    }
    ++ {
    (payload.array map 
    {
      c: $.name,
      d:'e'
    })
    }

输出

<a>
  <b/>
  <c>value1</c>
  <d>e</d>
  <c>value2</c>
  <d>e</d>
  <c>value3</c>
  <d>e</d>
</a>