如何在wso2中将文本转换为多个xml

时间:2019-07-17 10:58:26

标签: wso2 wso2esb wso2ei

<payloadFactory media-type="xml" description="Select Sheets">
                <format>
                    <Response>$1</Response>
                </format>
                <args>
                    <arg evaluator="xml" expression="get-property('name')"/>
                </args>
            </payloadFactory>   
<script language="js"><![CDATA[var csv = mc.getPayloadXML();   
  var lines = (csv + "").split("\n");
    for (var l = 1; l <= lines.length; l++) {
      cells = (lines[l] + "").split(";");
  }
]]></script>

我正在尝试通过esb选项从excel获取数据,我也正在获取输出,但不能正确获取。请指导我去做。正在从多个Excel工作表或多个Excel文件中检索数据,这些工作是根据我形成的CSV检索到的数据进行的。从csv我需要形成多个xml,然后需要插入db。如何形成CSV到多个XML?

假设某些工作表包含3列,4列或5列。取决于需要形成xml的子节点。

请让我知道

1 个答案:

答案 0 :(得分:1)

您可以使用Data-mapper介体通过csv文件构造xml有效负载。请参阅与CSV和XML转换有关的examples

例如,您可以根据csv工作表中的列数创建xml有效负载。

<rows>
  <row>
    <col1>value1</col1>
    <col2>value2</col2>
    <col3>value3</col3>
  </row>
  <row>
    <col1>value4</col1>
    <col2>value5</col2>
    <col3>value6</col3>
  </row>
</rows>

创建xml有效内容后,您可以使用Iterate介体或ForEach介体来遍历给定xpath(例如,以'row'标记开头的元素)的每个子xml元素(例如:xpath =“ // row”),然后为每个子元素执行数据库查询。

如果使用数据服务执行插入查询,则可以使用Iterate中介器,该中介器为每个xml子元素调用数据服务。另外,您可以将ForEach介体与DBReport介体一起使用,以对每个xml子元素执行插入查询。