2015-10-20 65 views
1

我在WSO2 ESB中有一個來自WS的響應,我在本地機器上的一個目錄中寫入這個xml文件。我想根據內容更改.xml文件的名稱。下面是序列用於寫文件的代碼:根據ws響應在WSO2 ESB中更改文件名

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

現在我想有MyFile_2.xml如果我找到「MyFile_2」在WS響應的特定標籤,或MyFile_3.xml如果我找到「MyFile_3」等等。我想我必須參數化我的序列,特別是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很好的回答。

回答

3
<property name="transport.vfs.ReplyFileName" 
expression="concat('MyFile_',$body/root/child/text(),'.xml')" scope="transport"/> 

其中$體/根/兒童/文()是XPath用來尋找您的特定標籤

+0

沒關係,謝謝你 – FDC

+0

什麼JSON響應?它與XML響應正常工作,但我無法從JSON中提取我的文本...我嘗試過http://goessner.net/articles/JsonPath/,但沒有任何 – FDC

+0

在您的使用中使用json-eval()表達式,像concat('MyFile _',json-eval($。elmt1.child1),'.xml')。請參閱https://docs.wso2.com/display/ESB481/JSON+Support –