Mule ESB:如何在会话变量上使用xpath表达式?

时间:2014-10-13 21:49:36

标签: xpath mule

我需要从会话变量中提取一些信息。会话变量Type是String并包含XML。我试过XPATH表达式,如 -

xpath('//tns:CreateUpdateRQ/tns:RequestInfo/sns:requestSourceID',sessionVars.originalMessage)

然而我得到异常,说明“找不到变压器NULL Payload to Document”。我尝试了MEL - #[sessionVars.originalMessage.CreateUpdateRQ.RequestInfo.requestID]。但它也没有用。

如何从包含XML的Type字符串的会话变量中提取信息。

P.S。我可以将有效负载设置为sesion变量&使用xpath但它不适合我的情况,因为我需要从会话变量7中提取信息,将其作为参数传递给datamapper。

感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

为方便阅读xml文件,我建议将String(Object)转换为xml,例如:

<xml:object-to-xml-transformer /> 

然后

<logger level="WARN" message="#[xpath://soapenv:Envelope/soapenv:Body//...]" />

简而言之,确保有效负载是XML类型,您可以通过设置

<set-property propertyName="Content-Type" value="text/xml" />