在Mulesoft中执行xpath失败

在Mulesoft中执行xpath失败,xpath,mule,mule-studio,Xpath,Mule,Mule Studio,我的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.s

我的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>

9A95*******A2631B8E820894CA.ps8bsfapi52t
9223372036854775807
我在名称空间管理器中声明了以下名称空间

            <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('//S:Envelope/S:Body/loginResponse/result/sessionId').text”失败。(org.mule.api.expression.ExpressionRuntimeException)。

XPath在除Mulesoft之外的任何其他工具上都能很好地使用。

将XPath与
*
一起用作名称空间,因此您不需要担心名称空间

#[xpath('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId').text]
xpath是不推荐使用的mule新版本

更新:

#[xpath3('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId')]

希望这有帮助。

谢谢。但这正是成功因素系统的反应。我不能改变,谢谢。但是不,那不起作用。结果相同。请检查更新的答案。使用
xpath3
代替
xpath
。这对我来说很有效。嗯,这有点过早。它不再倾倒了。但是它没有获取变量INFO 2017-12-05 12:06:45254[[pilatus].HTTP_Listener_Configuration.worker.01]org.mule.api.processor.LoggerMessageProcessor:session is:session is emptygot it.[xpath3('/*:sessionId',payload,'STRING')”。这是您的其他答案之一。