繁体   English   中英

在 WSO2 Integration Studio 中读取 a.txt 文件

[英]Reading a .txt file in WSO2 Integration Studio

是否可以读取具有“|”的.txt文件作为使用smooks的分隔符? 该文件类似于普通的 csv 文件,只是扩展名为.txt。 对于 csv 我们使用“csv-reader”,我可以使用什么来读取 .txt 文件? 或者有什么方法可以在WSO2 Integration Studio中将.txt文件转换成.csv?

这是我的文件的内容:

SYS_CD|PRO_CD|LOC_CD|AVA_QTY|RESQTY|PRO_QTY
POS|15|90|00|0|067656400

这就是我在代理中调用 Smooks 的方式。

<smooks config-key="Smooks-config-file">
    <input type="text"/>
    <output type="xml"/>
</smooks>

这是我的 smooks 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<localEntry key="Smooks-config-file" xmlns="http://ws.apache.org/ns/synapse">
    <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.5.xsd">
        <csv:reader fields="SYS_CD,PRO_CD,LOC_CD,AVA_QTY,RESQTY,PRO_QTY" separator="|" skipLines="1"/>
    </smooks-resource-list>
</localEntry>

您可以为此使用 Smooks 调解器。 您可以简单地读取文件并使用属性separator="|" 用“|”分割记录并将其解析为 XML。

<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.5.xsd">
    <csv:reader fields="name,age,$ignore$,address" separator="|" skipLines="1"/>
</smooks-resource-list>

以下是 VFS 工作示例。

消费者代理

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="Consumer" startOnLoad="true" transports="vfs" xmlns="http://ws.apache.org/ns/synapse">
    <target>
        <inSequence>
            <log description="Log student file records" level="full"/>
            <smooks config-key="smooks">
                <input type="text"/>
                <output type="xml"/>
            </smooks>
            <log description="Log student file records After===========" level="full"/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </target>
    <parameter name="transport.PollInterval">3</parameter>
    <parameter name="transport.vfs.ContentType">text/plain</parameter>
    <parameter name="transport.vfs.FileURI">file:///home/ycr/workspace/wso2/file/in</parameter>
    <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
    <parameter name="transport.vfs.MoveAfterFailure">file:///home/ycr/workspace/wso2/file/out</parameter>
    <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
    <parameter name="transport.vfs.FileNamePattern">.*\.txt</parameter>
    <parameter name="transport.vfs.MoveAfterProcess">file:///home/ycr/workspace/wso2/file/out</parameter>
</proxy>

烟雾配置

<?xml version="1.0" encoding="UTF-8"?>
<localEntry key="smooks" xmlns="http://ws.apache.org/ns/synapse">
    <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.5.xsd">
        <csv:reader fields="SYS_CD,PRO_CD,LOC_CD,AVA_QTY,RESQTY,PRO_QTY" separator="|" skipLines="1"/>
    </smooks-resource-list>
</localEntry>

Output

[2022-09-20 08:24:24,200]  INFO {LogMediator} - {proxy:Consumer} To: , WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:1FE89F7256E5FF52E91663676664208, Direction: request, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><text xmlns="http://ws.apache.org/commons/ns/payload">SYS_CD|PRO_CD|LOC_CD|AVA_QTY|RESQTY|PRO_QTY
POS|15|90|00|0|067656400
</text></soapenv:Body></soapenv:Envelope>

[2022-09-20 08:24:24,204]  INFO {LogMediator} - {proxy:Consumer} To: , WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:1FE89F7256E5FF52E91663676664208, Direction: request, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><csv-set><csv-record number="1"><SYS_CD>POS</SYS_CD><PRO_CD>15</PRO_CD><LOC_CD>90</LOC_CD><AVA_QTY>00</AVA_QTY><RESQTY>0</RESQTY><PRO_QTY>067656400</PRO_QTY></csv-record></csv-set></soapenv:Body></soapenv:Envelope>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM