在 Mulesoft 中执行 xpath 失败
Execution of xpath failed in Mulesoft
我的 Mulesoft 进程正在调用 SuccessFactors API。 /LOGIN 调用会产生如下响应。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<loginResponse xmlns="urn:sfobject.sfapi.successfactors.com" xmlns:ns2="urn:fault.sfapi.successfactors.com">
<result>
<sessionId>9A95*******A2631B8E820894CA.ps8bsfapi52t</sessionId>
<msUntilPwdExpiration>9223372036854775807</msUntilPwdExpiration>
</result>
</loginResponse>
</S:Body>
</S:Envelope>
我在命名空间管理器中声明了以下命名空间
<mulexml:namespace-manager>
<mulexml:namespace prefix="S" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
<mulexml:namespace prefix="ns2" uri="urn:fault.sfapi.successfactors.com"/>
<mulexml:namespace prefix="" uri="urn:sfobject.sfapi.successfactors.com"/>
</mulexml:namespace-manager>
我想将 sessionId 读入 mule 会话变量。
<set-session-variable variableName="SESSION" value="#[xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text]" doc:name="Get Session from Login"/>
但是,在执行时我最终会变成这样
<faultstring>Execution of the expression "xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text" failed. (org.mule.api.expression.ExpressionRuntimeException).</faultstring>
XPath 在除 Mulesoft 之外的任何其他工具上都能很好地检查。
使用带有 *
作为命名空间的 XPATH,因此您无需担心命名空间。
#[xpath('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId').text]
xpath 已弃用新版本的 mule。
更新:
#[xpath3('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId')]
希望对您有所帮助。
我的 Mulesoft 进程正在调用 SuccessFactors API。 /LOGIN 调用会产生如下响应。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<loginResponse xmlns="urn:sfobject.sfapi.successfactors.com" xmlns:ns2="urn:fault.sfapi.successfactors.com">
<result>
<sessionId>9A95*******A2631B8E820894CA.ps8bsfapi52t</sessionId>
<msUntilPwdExpiration>9223372036854775807</msUntilPwdExpiration>
</result>
</loginResponse>
</S:Body>
</S:Envelope>
我在命名空间管理器中声明了以下命名空间
<mulexml:namespace-manager>
<mulexml:namespace prefix="S" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
<mulexml:namespace prefix="ns2" uri="urn:fault.sfapi.successfactors.com"/>
<mulexml:namespace prefix="" uri="urn:sfobject.sfapi.successfactors.com"/>
</mulexml:namespace-manager>
我想将 sessionId 读入 mule 会话变量。
<set-session-variable variableName="SESSION" value="#[xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text]" doc:name="Get Session from Login"/>
但是,在执行时我最终会变成这样
<faultstring>Execution of the expression "xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text" failed. (org.mule.api.expression.ExpressionRuntimeException).</faultstring>
XPath 在除 Mulesoft 之外的任何其他工具上都能很好地检查。
使用带有 *
作为命名空间的 XPATH,因此您无需担心命名空间。
#[xpath('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId').text]
xpath 已弃用新版本的 mule。
更新:
#[xpath3('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId')]
希望对您有所帮助。