我正在尝试将Mule 3.4 CE应用程序迁移到Mule 3.6.1 CE,但遇到了xpath3问题。
有效载荷:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:itemMessage xmlns:ns2="http://test.com/messages">
<requestId>QAREQ:150623_0002</requestId>
<requestStatus>COMPLETE</requestStatus>
</ns2:itemMessage>
xpath表达式(工作)
#[xpath('string(//itemMessage/requestId/text())')]
xpath3表达式(不工作)
#[xpath3('//itemMessage/requestId/text()', payload, 'STRING')]
感谢任何真知灼见。
Xpath表达式似乎与XML文档不匹配。但基于XML文档,这是可行的:
<mulexml:namespace-manager
includeConfigNamespaces="true">
<mulexml:namespace prefix="ns2" uri="http://test.com/messages" />
</mulexml:namespace-manager>
<flow name="testFlow">
<poll doc:name="Poll">
<set-payload
value="<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:itemMessage xmlns:ns2="http://test.com/messages"> <requestId>QAREQ:150623_0002</requestId> <requestStatus>COMPLETE</requestStatus> </ns2:itemMessage>"
doc:name="Set Payload" />
</poll>
<logger level="INFO" message="#[xpath3('ns2:itemMessage/requestId/text()', payload, 'STRING')]" />
</flow>