xml 解析错误

PHP xml 解析错误

错误内容:

  • simplexml_load_string(): input conversion failed due to input error

错误示例:

  • xml 文件编码为utf-8, 但 encoding中的编码为 GB2312 (我自己就干了这样的蠢事)

需要注意的点:

  • php simplexml_load_string() 解析过程中会有二个字符编码,需要保持一致
    • xml 文件本身的字符编码
    • xml encoding中的编码

code:

  • 有时编码一致之后,还会出现这种解析错误, 需要自己转码
$responseXml  = file_get_contents("文件路径");
// 替换空格
 $replStr     = str_replace(' ', '', "encoding=\"GB2312\"");
 $responseXml = str_replace($replStr, "encoding=\"UTF-8\"", $responseXml);
// iconv 函数会有部分编码转换错误,mb_convert_encoding函数就没有
 $responseXml = mb_convert_encoding($responseXml, 'UTF-8', 'GB2312, GBK');
$simple = simplexml_load_string($responseXml);

你可能感兴趣的:(xml 解析错误)