我正在向经过验证的区域提出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,但这并不是真正理解这里的完整问题。
答案 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()
会将"
关闭到'
,使字符串正确输出。