Mule 4 用于每个拆分 XML 有效负载

问题描述 投票:0回答:1

我正在尝试拆分下面的 xml,并将每个 xml 节点保存到数据库表中。但由于某种原因,代码无法拆分。

<?xml version="1.0" encoding="UTF-8"?>
<wd:Report_Data xmlns:wd="xxx.com">
   <wd:Report_Entry>
      <wd:fiscalYear>FY2023</wd:fiscalYear>
      <wd:postedDate>2023-03-02T12:32:05.796-08:00</wd:postedDate>
   </wd:Report_Entry>
   <wd:Report_Entry>
      <wd:fiscalYear>FY2023</wd:fiscalYear>
      <wd:postedDate>2023-03-02T12:32:05.796-08:00</wd:postedDate>
   </wd:Report_Entry>
</wd:Report_Data>

下面是我的每个片段

<foreach doc:name="For Each" doc:id="5d66e985-11c9-400b-855c-74f9247e7e50" collection="#[%dw 2.0&#10;output application/xml&#10;ns wd xxx.com&#10;-&#45;&#45;&#10;payload.wd#Report_Data.*wd#Report_Entry]">
<logger level="DEBUG" doc:name="Logger" message="APGLPayload #[payload]" />
</foreach>

xml 似乎格式正确。任何帮助将不胜感激。我需要以 xml 格式写入数据库表。不过我对 json 没意见。

dataweave mule4
1个回答
0
投票

要生成可用作 foreach 范围内的集合的数组,您应该输出到

application/java
。 XML 甚至没有数组的概念,而且性能较差,因为它必须重新解析才能以任何方式使用。事实上,当输出 XML 时,尝试使用 DataWeave Playground 中的表达式尝试将数组转换为字符串失败。

Java 输出示例:

%dw 2.0
output application/java
ns wd xxx.com
---
payload.wd#Report_Data.*wd#Report_Entry
© www.soinside.com 2019 - 2024. All rights reserved.