PHP DOM DOCUMENT无法加载文件

时间:2013-05-21 18:16:42

标签: php dom ascii domdocument

所有

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

  1. 文件中存在注册商标®(R with Circle)。
  2. 基本上,如果它显示商标符号(带圆圈的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,该字符应该显示吗?。此文件不是由我生成的,因此此时更改编码不是一个选项....谢谢!

2 个答案:

答案 0 :(得分:1)

尝试该方法:

$pageDom = new DomDocument();    
$searchPage = mb_convert_encoding($htmlUTF8Page, 'HTML-ENTITIES', "UTF-8"); 
@$pageDom->loadHTML($htmlUTF8Page);

答案 1 :(得分:0)

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