2

我是骡子esb的新手。我正在尝试从 mySQL 获取值并转换为 XML。然后点击服务,然后结果将存储回数据库表中。我有两个问题

1) 我可以在 ESB mule 中看到两种不同的映射方式。a) 使用“Data Mapper” b) 使用“Transform Message” - 这将使用 data Weaver。哪一种转换方法适合我的要求。

2) 我尝试使用“Transform Message”和 Data Weaver 进行转换。我来自 DB 的输入将获取三行,如下所示。

college = abc        college = abc        college = abc
dept = IT            dept = CSE           dept = MECH           
No of students = 5   No of students = 4   No of students = 7

预期输出为

<University>
<college>abc</college> <!-- this is simple tag/ It will not repeat -->
<dept> <!-- This is complex tag -->
   <dept Name>IT</dept Name>
   <No of students>5</No of students>
</dept>
<dept>
   <dept Name>IT</dept Name>
   <No of students>5</No of students>
</dept>
<dept>
   <dept Name>IT</dept Name>
   <No of students>5</No of students>
</dept>

我尝试了类似下面的数据编织器。

%dw 1.0 

%output application/xml

"University":{
    "college": payload.college,
        dept: {
            dept_Name: payload."dept_Name",
            No of students: payload."No of students"
        }
}

但是上面的 dw 没有给出预期的结果。你能帮我解决这个问题吗?

4

1 回答 1

2

您可以试试这个 DataWeave,并根据需要进行修改。希望有帮助。

%dw 1.0
%output application/xml
---
{
    University: {
        college: payload.college[0],
        (payload map ((payload01 , indexOfPayload01) -> {
            dept: {
                deptName: payload01.dept,
                Noofstudents: payload01."No of students" as :number
            }
        }))
    }
}
于 2015-12-16T09:29:28.357 回答