使用Coldfusion解析奇怪的SOAP响应

使用Coldfusion解析奇怪的SOAP响应,soap,coldfusion,response,Soap,Coldfusion,Response,因此,我已经阅读了关于使用Coldfusion解析SOAP响应的其他解析问题和答案。然而,在本例中,响应的格式略有不同,当我尝试使用xmlSearch解析它时,结果得到一个空数组 下面是我需要解析的soap响应: <?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <

因此,我已经阅读了关于使用Coldfusion解析SOAP响应的其他解析问题和答案。然而,在本例中,响应的格式略有不同,当我尝试使用xmlSearch解析它时,结果得到一个空数组

下面是我需要解析的soap响应:

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <AuthorizeAndCaptureResponse xmlns="http://3DSI.org/WebServices/CreditCardTransaction">
         <AuthorizeAndCaptureResult xmlns:a="http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions.CreditCardTransactionDefinitions" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <Succeeded xmlns="http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions">false</Succeeded>
            <ValidationFailures xmlns="http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
            <a:FailureReason>PermissionDenied</a:FailureReason>
            <a:ProcessorResponse i:nil="true" />
            <a:RuleInfringements xmlns:b="http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions" i:nil="true" />
            <a:ThirdPartyResponse i:nil="true" />
            <a:Token i:nil="true" />
            <a:TotalAmount>0</a:TotalAmount>
            <a:TransactionKey i:nil="true" />
            <a:TransactionWarning xmlns:b="http://schemas.datacontract.org/2004/07/ThreeDelta.Common.Enums" i:nil="true" />
            <a:AddressAvsResponse>None</a:AddressAvsResponse>
            <a:CardSecurityCodeResponse>None</a:CardSecurityCodeResponse>
            <a:PostalCodeAvsResponse>None</a:PostalCodeAvsResponse>
            <a:ProcessorAvsResponse i:nil="true" />
            <a:ProcessorCardSecurityCodeResponse i:nil="true" />
            <a:AuthCode i:nil="true" />
            <a:CreditCardResponseStatus>None</a:CreditCardResponseStatus>
         </AuthorizeAndCaptureResult>
      </AuthorizeAndCaptureResponse>
   </s:Body>
</s:Envelope>

任何帮助都将不胜感激。

在执行xmlSearch之前是否解析SOAP字符串

<cfset soapFile = XmlParse(SOAP-RESPONSE)>
<cfset authCode = xmlSearch(soapFile, 'AuthCode') />


这对我很有效。

我已经尝试了以下方法,但没有成功。它返回一个空数组。您使用的是什么版本的ColdFusion?CF版本之间存在XML实现差异。该版本为Coldfusion 11是的,我之前正在对其进行解析。上面的代码是:我让它工作了!您的回答告诉我从a:AuthCode中去掉“a”。一旦我把它取下来,解析工作就很好了。谢谢你的帮助。
<cfset soapFile = XmlParse(SOAP-RESPONSE)>
<cfset authCode = xmlSearch(soapFile, 'AuthCode') />