所有
我正在尝试将XML文件加载到DOM中,但由于以下原因导致失败:
®
(R with Circle)。基本上,如果它显示商标符号(带圆圈的R),则DOM无法加载文件。
显示的错误是:
encoder errorCData section not finished
Premature end of data in tag elm line 12
当我检查文件的编码时,我得到 ASCII 。如果我从文件中删除该字符,那么一切正常。
我使用以下代码加载文件:
$xml_dom = new DOMDocument();
$xml_dom->preserveWhiteSpace = false;
$result = $xml_dom->load($file);
失败时 $result = ''
(空)。但是,当我删除商标字符并且一切正常时,$result = 1
有没有办法让DOM忽略该字符?如果编码是ASCII,该字符应该显示吗?。此文件不是由我生成的,因此此时更改编码不是一个选项....谢谢!
答案 0 :(得分:1)
尝试该方法:
$pageDom = new DomDocument();
$searchPage = mb_convert_encoding($htmlUTF8Page, 'HTML-ENTITIES', "UTF-8");
@$pageDom->loadHTML($htmlUTF8Page);
答案 1 :(得分:0)
文件编码已更改为PLAIN
并修复了所有内容....