根据 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