【问题标题】:csv to xml: not sure the best way to do it in Mule ESBcsv 到 xml:不确定在 Mule ESB 中执行此操作的最佳方法
【发布时间】:2013-02-24 10:27:30
【问题描述】:

我是 Mule 的新手,请耐心等待。我收到以下 CSV 文件:

Company1,2,123 Street,Winchester,UK
"000010","CHRISTINE","I","HAAS","A00","3978","1995-01-01","PRES",18,"F","1963-08-24",152750.00
"000020","MICHAEL","L","THOMPSON","B01","3476","2003-10-10","MANAGER",18,"M","1978-02-02",94250.00

第一行,标题,包含公司信息加上 CSV 文件中的记录数(员工人数)(标题中的第二个参数)。

现在我需要将其转换为以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<tns:employeedata xmlns:tns="http://coxb.test.legstar.com/payrollemployee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://coxb.test.legstar.com/payrollemployee PayrollEmployee.xsd ">
  <tns:employeecount>2</tns:employeecount>
  <tns:employeelist>
    <tns:employees>
      <tns:employeenumber>000010</tns:employeenumber>
      <tns:firstname>CHRISTINE</tns:firstname>
      <tns:middleinitial>I</tns:middleinitial>
      <tns:surname>HAAS</tns:surname>
      <tns:department>A00</tns:department>
    </tns:employees>
    <tns:employees>
      <tns:employeenumber>000020</tns:employeenumber>
      <tns:firstname>MICHAEL</tns:firstname>
      <tns:middleinitial>L</tns:middleinitial>
      <tns:surname>THOMPSON</tns:surname>
      <tns:department>B01</tns:department>
    </tns:employees>
  </tns:employeelist>
</tns:employeedata>

我可以很容易地转换这个文件,而无需第一行(标题)。我的问题是如何处理标题和提取/转换“employeecount”。

任何帮助将不胜感激。

【问题讨论】:

    标签: mule


    【解决方案1】:

    最简单的方法是使用DataMapper。将输入设置为 CSV(使用示例 CSV),将输出设置为 XML(使用您的 XSD 或示例 XML)。

    进入映射视图后,点击您的员工人数字段。您将看到一个可以输入表达式的区域。有一个未记录的参数$in.0.__id,您可以使用它来包含记录计数。请注意,这仅适用于 CSV 文件。

    关于如何跳过第一行,DataMapper默认是这样做的。

    【讨论】:

    • 谢谢丹。我尝试了您的建议,并且成功了一半。我的映射结果是这样的:
    • 谢谢丹。我尝试了您的建议,并且成功了一半。我的映射结果是多个根 XML 结构“employeedata”,其中一个“employees”元素和“employeecount”字段在输出 XML 中的每个新条目中递增 1(类似于 java 中的循环输出)。我没有得到一个根元素“employeedata”和一个嵌套的“employees”列表和一个“employeecount”元素。我不确定是我无法正确使用 DataMapper,还是该工具“按设计”工作。
    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2013-02-10
    • 2012-10-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多