【发布时间】:2019-07-19 11:38:14
【问题描述】:
请有人帮忙。我有一组数据作为 csv(来自 excel 多个工作表,我已经形成了 csv)只是我想将这些数据插入到多个表中,这取决于 excel 的工作表。
请帮我解决我的问题。
我希望每次迭代中的那些 csv 形成 xml。
【问题讨论】:
请有人帮忙。我有一组数据作为 csv(来自 excel 多个工作表,我已经形成了 csv)只是我想将这些数据插入到多个表中,这取决于 excel 的工作表。
请帮我解决我的问题。
我希望每次迭代中的那些 csv 形成 xml。
【问题讨论】:
首先,我们可以从 CSV 数据构建 XML 并遍历 XML。请在下面找到示例配置。在此示例中,它将从源目录中选择 CSV 文件并进行处理。
Smooks 配置:
<?xml version="1.0"?>
<smooks-resource-list
xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.2.xsd">
<resource-config selector="org.xml.sax.driver">
<resource>org.milyn.csv.CSVReader</resource>
<param name="fields">firstname,lastname,gender,age,country</param>
<param name="rootElementName">people</param>
<param name="recordElementName">person</param>
</resource-config>
</smooks-resource-list>
代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="CSVToXML"
transports="https,http,vfs"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<smooks config-key="conf:/repository/smooks-config.xml">
<input type="text"/>
<output type="xml"/>
</smooks>
<!-- Here iterate through the XML -->
</inSequence>
<outSequence/>
</target>
<parameter name="transport.PollInterval">1000</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="Operation">urn:placeOrder</parameter>
<parameter name="transport.vfs.FileURI">file://<SOURCE_DIR></parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://<PROCESSED_FILES_DIR></parameter>
<parameter name="transport.vfs.MoveAfterFailure">file://<FAILED_FILES_DIR></parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.csv</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<description/>
</proxy>
参考资料: 1.https://docs.wso2.com/display/EI640/VFS+Transport 2.https://docs.wso2.com/display/EI640/Smooks+Mediator 3.https://docs.wso2.com/display/EI640/Iterate+Mediator
【讨论】: