2013-06-28 42 views
2

我想讀取正在由VFS傳輸處理的文件中的一些值。
我的文件是:來自VFS傳輸中的文件的XPath WSO2 ESB

<sales> 
<header> 
    <source>STORE1</source> 
    <target>HEADOFFICE</target> 
</header> 

於是我就用一個屬性調解得到我想要使用XPath值。但是,當我在Log Mediator中打印該屬性時,它不打印任何內容。我代理這個樣子:

<proxy name="Try1" 
     transports="vfs" 
     startOnLoad="true" 
     trace="disable"> 
    <target> 
    <inSequence> 
     <property xmlns:ns="http://org.apache.synapse/xsd" 
        name="source" 
        expression="//header/source/text()" 
        scope="default" 
        type="STRING"/> 
     <log level="full"> 
      <property xmlns:ns="http://org.apache.synapse/xsd" 
        name="Value_source" 
        expression="get-property('source')"/> 
     </log> 
    </inSequence> 
    </target> 
    <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter> 
    <parameter name="transport.PollInterval">15</parameter> 
    <parameter name="transport.vfs.MoveAfterProcess">file:///Users/Target</parameter> 
    <parameter name="transport.vfs.FileURI">file:///Users/Source</parameter> 
    <parameter name="transport.vfs.MoveAfterFailure">file:///Users/Failure</parameter> 
    <parameter name="transport.vfs.FileNamePattern">.*.txt</parameter> 
    <parameter name="transport.vfs.ContentType">text/plain</parameter> 
    <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter> 

日誌調解結果是

[2013-06-28 16:59:49,939] INFO - LogMediator Value_source= 

所以,我怎麼能得到使用XPath在文件中的值?

回答

2

問題是由於ContentType一套用於運輸參數:

開關

<parameter name="transport.vfs.ContentType">text/plain</parameter> 

<parameter name="transport.vfs.ContentType">application/xml</parameter> 

,因爲你在做信息XPath操作。

+0

謝謝..我嘗試你的解決方案和它的工作:) –

0

問題出在你文件的內容上。由於格式不正確,xpath表達式失敗。輸入內容中是否有可能形成格式良好的xml?

<sales> 
<header> 
    <source>STORE1</source> 
    <target>HEADOFFICE</target> 
</header> 
</sales>