Mule ESB:如何在会话变量上使用xpath表达式?
我需要从会话变量中提取一些信息。会话变量类型为字符串,包含XML。我尝试了XPATH表达式,比如-Mule ESB:如何在会话变量上使用xpath表达式?,xpath,mule,Xpath,Mule,我需要从会话变量中提取一些信息。会话变量类型为字符串,包含XML。我尝试了XPATH表达式,比如- xpath('//tns:CreateUpdateRQ/tns:RequestInfo/sns:requestSourceID',sessionVars.originalMessage) 然而,我得到一个异常,声明“找不到文档的转换器空负载”。我尝试了MEL-like-#[sessionVars.originalMessage.CreateUpdateRQ.RequestInfo.request
xpath('//tns:CreateUpdateRQ/tns:RequestInfo/sns:requestSourceID',sessionVars.originalMessage)
然而,我得到一个异常,声明“找不到文档的转换器空负载”。我尝试了MEL-like-#[sessionVars.originalMessage.CreateUpdateRQ.RequestInfo.requestID]
。但它也不起作用
如何从包含XML的字符串类型的会话变量中提取信息
另外,我可以将有效负载设置为sesion变量并使用xpath,但它不适合我的情况,因为我需要从会话变量7中提取信息,并将其作为参数传递给datamapper
感谢您在这方面的帮助。为了便于阅读xml文件,我建议将字符串(对象)转换为xml,例如:
<xml:object-to-xml-transformer />
然后
简而言之,确保有效负载是XML类型,您可以通过设置它
<set-property propertyName="Content-Type" value="text/xml" />
谢谢您的回复。不过,我希望从会话变量(存储XML字符串)中提取信息。我尝试了多种选项,如-“#[xpath('//tns:CreateUpdateSchoolRQ/tns:requestInfo',sessionVars.originalSchoolMessage)]”&.text、.getText()等,但都不起作用。如果我将session变量设置为payload&使用xpath,我会得到正确的结果。但是我想直接从会话变量中提取信息。
<set-property propertyName="Content-Type" value="text/xml" />