XML中的cURL响应-Simplexml_load_string失败


cURL Response in XML - Simplexml_load_string failed

我正在向经过身份验证的区域发出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"encoding="tf-8",然后我们如何在实际的xml中切换到使用"?当我试图用simplexml_load_string加载它时,它会因此而失败。我知道我可以简单地执行str_replace,但这并不能真正理解这里的全部问题。

我们能看到你的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";
?>

而且它似乎运行良好。

尝试用'替换所有"

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

字符串在双引号处闭合。

所以字符串打印为

很明显,$string = "<?xml version='1.0' encoding='UTF-8'?><Response xmlns:xsi="使用str_replace()会将它正在接近的"变成',从而使字符串正确输出。