我想从 VFS 传输正在处理的文件中读取一些值。
我的文件是:
<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 获取文件中的值呢?