You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

curl返回XML无法用simplexml_load_string解析,求转数组/XML方案

求助:SimpleXML无法解析SOAP返回的XML数据

我研究这个问题已经一天,相关主题的帖子也查阅过很多,还是没找到解决办法,特此求助。

我通过以下代码调用WSDL API:

$url = "https://test.domian.com/rrpservices/checkDomainsService";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array (
    "Content-Type: text/xml"
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws/">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:checkDomains>
         <!--Optional:-->
         <user>
            <!--Optional:-->
            <name>userxxxxx</name>
            <!--Optional:-->
            <password>xxxxxx</password>
         </user>
         <!--Optional:-->
         <check>
            <!--Zero or more repetitions:-->
            <name>teddy12345678.com.cn</name>
            <name>teddyabc.com.cn</name>
            <name>google.com</name>
         </check>
      </ws:checkDomains>
   </soapenv:Body>
</soapenv:Envelope>';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);    
curl_close($curl);

我需要用下面的代码才能看到返回结果:

echo "<pre>". htmlentities($resp) . "</pre>";

输出的XML内容如下:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:checkDomainsResponse xmlns:ns1="http://ws/">
<response>
<result code="200">
<msg>check domain return</msg>
</result>
<domains>
<domain avail="1">
<name>teddy12345678.com.cn</name>
</domain>
<domain avail="1">
<name>teddyabc.com.cn</name>
</domain>
<domain avail="0">
<name>google.com</name>
</domain>
</domains>
</response>
</ns1:checkDomainsResponse>
</soap:Body>
</soap:Envelope>

虽然这看起来是标准的XML字符串,但用常规的XML处理代码却无法生效,比如:

$xmlObject = simplexml_load_string($resp);      
$array = json_decode(json_encode($xmlObject),TRUE);
print_r ($array);

这段代码没有任何输出,simplexml_load_string无法正常工作。我希望能把返回的数据转换成XML对象或者数组,求各位提供解决方案。


内容的提问来源于stack exchange,提问作者Pete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:02:33