解析CURL SOAP响应

时间:2014-03-11 19:39:31

标签: curl soap response

我正在进行SOAP调用(某个商家服务)并获得以下响应

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <ipgapi:IPGApiActionResponse xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:pay_1_0_0="http://api.clickandbuy.com/webservices/pay_1_0_0/" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
        <ipgapi:successfully>true</ipgapi:successfully>
        <ipgapi:DataStorageItem>
            <a1:CreditCardData>
                <v1:CardNumber>111</v1:CardNumber>
                <v1:ExpMonth>11</v1:ExpMonth>
                <v1:ExpYear>11</v1:ExpYear>
                <v1:Brand>CARD</v1:Brand>
            </a1:CreditCardData>
        </ipgapi:DataStorageItem>
    </ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>

这是,文档建议用curl进行SOAP调用,到目前为止,我一直在尝试遵循该建议。以上是我从curl_exec得到的回复。我不熟悉SOAP,但这不是标准的xml响应,是吗?我不能用标准方法(simplexml)解析它,我是否正确?

那我该怎么办呢?我可以使用preg_match或其他东西“过滤”我需要的数据吗?这是一个可行的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我用它来得到simple_xml:
我在$curl...

中有卷曲响应
$string = str_replace('ipgapi:', '', $curl);
$string = str_replace('SOAP-ENV:', '', $string);
$return = simplexml_load_string($string);
...

然后解析$return