用php方法simplexml_load_string()解析xml成数组失败,总是返回false。
找了很多方法,终于知道在php用simplexml_load_string()解析xml成数组的时候,字符串中不要包含一些特殊字符,我这边的xml中包含了&符号,于是导致的解析失败。
具体有哪些特殊符号不可以,我没有去一一校验。那么,怎么解决这个解析出错的问题呢?
只要将得到的特殊符号替换成某个特定字符,在解析完成之后将特定字符转化成&即可。
$info = '
UTF-8
01
ok
成功
http://www.shuchengxian.com/index.php/Article/soso?keyword=php&page=2.html
';
$info = str_replace("&","{xml}",$info);
$xmlstring = simplexml_load_string($info, 'SimpleXMLElement', LIBXML_NOCDATA);
$val = json_decode(json_encode($xmlstring),true);
$arr = str_replace("{xml}","&",$val);
得到的结果:
Array
(
[charset] => UTF-8
[err_code] => 01
[err_msg] => ok
[message] => 成功
[token_id] => http://www.shuchengxian.com/index.php/Article/soso?keyword=php&page=2.html
)
通过上面的方法即可解决php方法simplexml_load_string()解析xml转数组失败的问题。