根据 ws 响应更改 WSO2 ESB 中的文件名
Changing filename in WSO2 ESB according to ws response
我收到了来自 WSO2 ESB 中 WS 的响应,我将这个 xml 文件写在本地机器的目录中。我想根据内容更改 .xml 文件的名称。下面是写入文件时使用的序列代码:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="WriteFile">
<property name="transport.vfs.ReplyFileName" value="MyFile.xml" scope="transport"></property>
<property name="OUT_ONLY" value="true"></property>
<send>
<endpoint>
<address uri="vfs:file:///C:\MyFolder"></address>
</endpoint>
</send>
</sequence>
现在,如果我在 WS 响应的特定标记中找到 "MyFile_2",我希望得到 MyFile_2.xml,如果我找到 "MyFile_3",则得到 MyFile_3.xml,等等在。我想我必须参数化我的序列,尤其是 value="MyFile.xml" 但我不知道该怎么做。
编辑:那么 SOAP 响应呢?我有一个这样的 SOAP 答案:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap..............>
<soap:Body>
<QueryStructureResponse xmlns="..........>
<QueryStructureResult>
<RegistryInterface xmlns="ht............>
<Header>
<ID>IT1001</ID>
<Test>true</Test>
<Name xml:lang="en">MY_FILENAME</Name>
............
我以类似的方式尝试过,但是当我想调用我的包含 MY_FILENAME 的文件时出现了问题。
以前的 REST 响应操作没问题,Jean-Michel 的回答很好。
<property name="transport.vfs.ReplyFileName"
expression="concat('MyFile_',$body/root/child/text(),'.xml')" scope="transport"/>
其中 $body/root/child/text() 是用于查找特定标签的 XPath
我收到了来自 WSO2 ESB 中 WS 的响应,我将这个 xml 文件写在本地机器的目录中。我想根据内容更改 .xml 文件的名称。下面是写入文件时使用的序列代码:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="WriteFile">
<property name="transport.vfs.ReplyFileName" value="MyFile.xml" scope="transport"></property>
<property name="OUT_ONLY" value="true"></property>
<send>
<endpoint>
<address uri="vfs:file:///C:\MyFolder"></address>
</endpoint>
</send>
</sequence>
现在,如果我在 WS 响应的特定标记中找到 "MyFile_2",我希望得到 MyFile_2.xml,如果我找到 "MyFile_3",则得到 MyFile_3.xml,等等在。我想我必须参数化我的序列,尤其是 value="MyFile.xml" 但我不知道该怎么做。
编辑:那么 SOAP 响应呢?我有一个这样的 SOAP 答案:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap..............>
<soap:Body>
<QueryStructureResponse xmlns="..........>
<QueryStructureResult>
<RegistryInterface xmlns="ht............>
<Header>
<ID>IT1001</ID>
<Test>true</Test>
<Name xml:lang="en">MY_FILENAME</Name>
............
我以类似的方式尝试过,但是当我想调用我的包含 MY_FILENAME 的文件时出现了问题。 以前的 REST 响应操作没问题,Jean-Michel 的回答很好。
<property name="transport.vfs.ReplyFileName"
expression="concat('MyFile_',$body/root/child/text(),'.xml')" scope="transport"/>
其中 $body/root/child/text() 是用于查找特定标签的 XPath