0

我在 dataweave 中进行了转换。

我正在从 Mysql 数据库中获取输入。输入有效载荷类型是 List-Map。我的 dataweave 编辑器有以下代码。

%dw 1.0
%namespace ns1 urn:abc:api:Components
%output application/xml 
---
ns1#"ItemRequest":{
    ns1#"Requester":
        ns1#ac: payload.time_max,

        ns1#"ErrorLanguage": "en_US",
        ns1#"WarningLevel": "High"
}

我的输出是

<?xml version='1.0' encoding='UTF-8'?>
<ns1:ItemRequest xmlns:ns1="urn:abc:api:Components">
  <ns1:Requester>
    <ns1:ac>
      <time_max>1</time_max>
    </ns1:ac>
  </ns1:Requester>
  <ns1:ErrorLanguage>en_US</ns1:ErrorLanguage>
  <ns1:WarningLevel>High</ns1:WarningLevel>
</ns1:AddItemRequest>

我不确定为什么要在输出中使用“time_max”在“ac”元素下创建标签。'Time_max' 是 MySQL 表中的列名。但我不想在输出 xml 中添加列。我们怎样才能避免这种标签的创建?

预期输出为

<?xml version='1.0' encoding='UTF-8'?>
<ns1:ItemRequest xmlns:ns1="urn:abc:api:Components">
  <ns1:Requester>
    <ns1:ac>1</ns1:ac>
  </ns1:Requester>
  <ns1:ErrorLanguage>en_US</ns1:ErrorLanguage>
  <ns1:WarningLevel>High</ns1:WarningLevel>
</ns1:AddItemRequest>
4

1 回答 1

0

我已经通过键入以下代码解决了这个问题。

%dw 1.0
%namespace ns1 urn:abc:api:Components
%output application/xml 
---
ns1#"ItemRequest":{
    ns1#"Requester":
        ns1#ac: payload[0].time_max,
        ns1#"ErrorLanguage": "en_US",
        ns1#"WarningLevel": "High"
}

下面的代码片段行很神奇。我已经包含了数组索引值。

 ns1#ac: payload[0].time_max
于 2015-12-21T01:49:57.150 回答