Loops WSO2迭代从vfs文件获取属性
我用的是WSO2和VFS。我需要获取传入文件,fileinput.xml并将id字段记录在一起。VFS已启用且功能正常,当我将fileinput.xml移动到我的test_in文件夹时,它会得到适当的处理并正确地放入test_out或test_failure。我已经阅读了大量的在线文档,但无法理解如何做以下工作 我的问题是Loops WSO2迭代从vfs文件获取属性,loops,wso2,vfs,Loops,Wso2,Vfs,我用的是WSO2和VFS。我需要获取传入文件,fileinput.xml并将id字段记录在一起。VFS已启用且功能正常,当我将fileinput.xml移动到我的test_in文件夹时,它会得到适当的处理并正确地放入test_out或test_failure。我已经阅读了大量的在线文档,但无法理解如何做以下工作 我的问题是 如何从我的文件输入.xml中获取属性 如何迭代ID并将它们连接到日志中 fileinput.xml <soapenv:Envelope xmlns:soapen
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<customers>
<customer>
<id>testid1</id>
<prop1>a</prop1>
<prop2>b</prop2>
<customer/>
<customer>
<id>testid2</id>
<prop1>3</prop1>
<prop2>4</prop2>
<customer/>
</customers>
</soapenv:Body>
</soapenv:Envelope>
测试1
A.
B
测试2
3.
4.
我的wso2代理文件
<?xml version="1.0" encoding="UTF-8"?>
<proxy
xmlns="http://ws.apache.org/ns/synapse" name="FileProxy" transports="vfs" startOnLoad="true" trace="disable">
<target>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.PollInterval">5</parameter>
<parameter name="transport.vfs.FileURI">file:///Users/myuser/test_in</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file:///Users/myusertest_out</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file:///Users/myuser/test_failure</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<inSequence>
<log category="WARN" level="full">
<property name="MESSAGE" value="In Sequence"/>
</log>
<clone>
<target sequence="fileWriteSequence"/>
</clone>
</inSequence>
</target>
<outSequence>
<log category="WARN" level="full">
<property name="MESSAGE" value="Out Sequence"/>
</log>
<send/>
</outSequence>
</proxy>
移动
移动
5.
file:///Users/myuser/test_in
file:///Users/myusertest_out
file:///Users/myuser/test_failure
.xml
文本/xml
我的fileWriteSequence
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="fileWriteSequence">
<log level="full">
<property name="sequence" value="fileWriteSequence"/>
</log>
<property name="transport.vfs.ReplyFileName" expression="fn:concat(fn:substring-after(get-property('MessageID'), 'urn:uuid:'), '.txt')" scope="transport"/>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint name="FileEpr">
<address uri="vfs:file:///Users/myuser/test_out"/>
</endpoint>
</send>
</sequence>
您可以使用iterate mediator对“id”元素进行迭代,并使用操作范围中的属性连接所有id值。请参阅谢谢,我今天会尽快尝试,如果有效,我会接受。