如何从xml文件中跳过/删除无效的非utf8字符

时间:2015-01-23 12:37:36

标签: php xml xml-parsing

我正在寻找一种从xml文件中删除/跳过非utf8字符的方法。
我使用simplexml_load_string(),但是当文件具有非utf8字符时,我得到错误"解析器错误:CharRef:无效的十六进制值",并编码它的外观那样:

Q7fzÕ6,¯å1òw~Ò`H-7%¨§ÃU³^Ôàƒ³‡Îá_s…“w²žrâºæºçYF#K‰àa¥²o8Îk쎻qíNž‚ËÂUeJvgXêõ»'[Hw®Èl[-&#xAEPs§æŠ§£gáRÓ„Å2Ì$ŽŽŠŽÆÁœ˜.E~Ñ°@=

并且我无法保存来自该xml的信息,我尝试了很多来自web / stackoverflow的解决方案,没有人帮我。
我正在尝试preg_replace等。
谢谢 !

1 个答案:

答案 0 :(得分:0)

评论回答:

  

尝试删除/转义此文中的&符号或将其包装在CDATA中   块

所以我把它放在召唤功能之前 simplexml_load_string($string)
这个
$string = str_replace('&', ' ', $string);
现在它的工作,不和&在string中,simplexml_load_string()可以解析而不会出错。

相关问题