我正在向经过身份验证的区域发出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()
会将它正在接近的"
变成'
,从而使字符串正确输出。