2017-06-16 6 views
2

ColdFusionを使用したSOAP応答の解析について、他の解析に関する質問と回答を読みました。しかし、この場合、レスポンスの形式が少し異なり、xmlSearchを使用して解析すると、結果として空の配列が返されます。ここでColdfusionによる奇妙なSOAP応答の解析

は、私が解析する必要が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> 

私も、アレイからa:AuthCode値を必要としています。私はすでに以下を試したことがありますが運がありません。空の配列を返します。

<cfset results = xmlSearch(soapResponse,"//*[local-name()='s:Envelope']") /> 
<cfdump var="#results#" /> 

ご協力いただければ幸いです。

+0

私はすでに以下を試してきましたが、運がありません。空の配列を返します。

+0

どのバージョンのColdFusionを使用していますか? Alex

+0

バージョンはColdfusion 11です –

答えて

1

xmlSearchを実行する前にSOAP文字列を解析していますか?

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

これは私に役立ちました。

+0

はい、私は前にそれを解析しています。上記のコードは次のとおりです。

+0

私は働きました!あなたの応答は私にAuthCodeから 'a'を取り除くように言った。一旦それを取り除くと、解析はうまくいった。ご協力いただきありがとうございます。 –

関連する問題