0

全部,

我正在尝试将 XML 文件加载到 DOM 中,但由于以下原因而失败:

  1. 文件中存在注册商标®(R 与 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,该字符是否应该显示?. 该文件不是由我生成的,因此此时更改编码不是一种选择......谢谢!

4

2 回答 2

1

试试那个方法:

$pageDom = new DomDocument();    
$searchPage = mb_convert_encoding($htmlUTF8Page, 'HTML-ENTITIES', "UTF-8"); 
@$pageDom->loadHTML($htmlUTF8Page);
于 2013-06-13T06:42:32.823 回答
0

文件编码已更改为PLAIN并修复了所有内容....

于 2013-06-13T04:38:39.457 回答