【问题标题】:How to read values from Soap Request如何从 Soap 请求中读取值
【发布时间】:2017-09-18 09:10:47
【问题描述】:

我正在与 Soap Web 服务进行交互,我想从 soap 对象中读取值。我总是遇到异常。见下文;

肥皂样品;

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <c2b:C2BPaymentValidationRequest xmlns:c2b="http://cps.huawei.com/cpsinterface/c2bpayment">
         <TransID>3IN40005PY</TransID>
         <TransTime>20160923143639</TransTime>
         <TransAmount>3000</TransAmount>
         <BusinessShortCode>10069</BusinessShortCode>
         <MSISDN>86812530102</MSISDN>
         <KYCInfo>
            <KYCName>FirstName</KYCName>
            <KYCValue>aaa</KYCValue>
         </KYCInfo>
         <KYCInfo>
            <KYCName>MiddleName</KYCName>
            <KYCValue>bbb</KYCValue>
         </KYCInfo>
         <KYCInfo>
            <KYCName>LastName</KYCName>
            <KYCValue>ccc</KYCValue>
         </KYCInfo>
      </c2b:C2BPaymentValidationRequest>
   </soapenv:Body>
</soapenv:Envelope>

我尝试制作一个对象

$xml=simplexml_load_string($response) or die("Error: Cannot create object");

以便我可以读取以下值;

$TransID=$xml-&gt;TransID; $TransTime=$xml-&gt;TransTime; $TransAmount=$xml-&gt;TransAmount;

但是这里失败了 die("Error: Cannot create object");

或者更好的是如何将soap请求更改为json并获取值?有人吗?

【问题讨论】:

    标签: php xml soap


    【解决方案1】:

    您的代码中似乎缺少namespace declaration (php manual) for SOAP。

    
    $xml = simplexml_load_string($xml_data);
    $xml->registerXPathNamespace('c2b', 'http://cps.huawei.com/cpsinterface/c2bpayment');
    $response = $xml->xpath('//c2b:C2BPaymentValidationRequest')  or die("Error: Cannot create object");
    
    print_r($response);
    
    

    输出:

    
    Array
    (
        [0] => SimpleXMLElement Object
            (
                [TransID] => 3IN40005PY
                [TransTime] => 20160923143639
                [TransAmount] => 3000
                [BusinessShortCode] => 10069
                [MSISDN] => 86812530102
                [KYCInfo] => Array
                    (
                        [0] => SimpleXMLElement Object
                            (
                                [KYCName] => FirstName
                                [KYCValue] => aaa
                            )
    
                        [1] => SimpleXMLElement Object
                            (
                                [KYCName] => MiddleName
                                [KYCValue] => bbb
                            )
    
                        [2] => SimpleXMLElement Object
                            (
                                [KYCName] => LastName
                                [KYCValue] => ccc
                            )
    
                    )
    
            )
    
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多