2013-05-21 177 views
0

所有,PHP DOM文檔無法加載文件

我試圖加載XML文件到DOM,但它未能由於以下原因:

  1. 存在註冊商標®(R與圈)在文件中。

基本上,如果顯示商標符號(帶圓圈的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碼?。這個文件不是由我生成的,所以在這一點上改變編碼不是一個選項....謝謝!

回答

1

試試這個方法:

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

文件編碼變更爲PLAIN和它固定的一切....