XML中的cURL响应 - Simplexml_load_string失败

时间:2011-06-17 15:39:33

标签: php xml curl simplexml

我正在向经过验证的区域提出cURL请求,该区域工作正常;当回应出响应时,除了第一部分外,一切看起来都很好。这是我的确切响应(使用otherData标记替换我的实际数据)。

 <?xml version='1.0' encoding='UTF-8'?>
    <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <ResponseStatus>
           <StatusCode>0</StatusCode>
           <StatusMessage>Success</StatusMessage>
        </ResponseStatus>
        <otherData></otherData>
    </Response>

看看xml版本='1.0'coding ='utf-8'然后我们切换到使用“在实际的XML中?当我尝试使用simplexml_load_string加载它时,它因此而失败。我知道我可以简单地做一个str_replace,但这并不是真正理解这里的完整问题。

2 个答案:

答案 0 :(得分:1)

我们能看到你的PHP代码吗?我正在跑步:

<?php
    $xml_string =<<<XML
<?xml version='1.0' encoding='UTF-8'?>
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ResponseStatus>
       <StatusCode>0</StatusCode>
       <StatusMessage>Success</StatusMessage>
    </ResponseStatus>
    <otherData></otherData>
</Response>
XML;

$xml_obj = simplexml_load_string($xml_string);
echo $xml_obj->ResponseStatus->StatusMessage."\n";
?>

似乎工作正常。

答案 1 :(得分:0)

尝试将所有"替换为'

$string = str_replace("\"", "'", $string);

字符串以双引号关闭。

因此字符串打印为

$string = "<?xml version='1.0' encoding='UTF-8'?><Response xmlns:xsi="所以显然使用str_replace()会将"关闭到',使字符串正确输出。