Mule 3.6.1 xpath3
我正在尝试将我的Mule 3.4 CE应用程序迁移到Mule 3.6.1 CE,但xpath3出现问题 有效载荷:Mule 3.6.1 xpath3,mule,xpath-3.0,Mule,Xpath 3.0,我正在尝试将我的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> <requ
<?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>
xpath3表达式(不工作)
非常感谢您的见解。您的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>
您的xpath表达式与XML完全不匹配?我收到这个错误。。错误2015-06-25 11:02:23778[[testprj].testFlow.stage1.02]org.mule.exception.DefaultMessaginExceptionStrategy:***************************************************************************************************************************************************************消息:执行表达式“xpath3('ns2:itemMessage/requestId/text()”,有效负载字符串失败。(org.mule.api.expression.ExpressionRuntimeException)。消息有效负载的类型为:StringCode:MULE_ERROR--2--------------------------------------------------------------------异常堆栈为:1。前缀ns2尚未声明(net.sf.saxon.trans.XPathException)net.sf.saxon.expr.parser.XPathParser:263(null)我在Mule 3.6.1中尝试过。当我添加名称空间管理器时,它起到了作用。是的,您需要添加名称空间管理器。更新了我的答案。
#[xpath3('//itemMessage/requestId/text()', payload, 'STRING')]
<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>