[英]PHP's DomElement->nodeValue has gobbly-gook
我正在使用PHP的DOMElement控件解析第三方網頁。 當我在瀏覽器中使用網頁並查看源代碼時,它很干凈,但是當我通過DOMElement-> nodeValue參數訪問某些節點時,HTML標記不存在,並且有幾個換行符和這個字符。 根據這個答案 ,這是出現編碼問題時出現的字符。
我也得到了那個gobbly-gook:
我的問題是如何在DOMElement中簡單地獲取干凈的HTML代碼?
這是干凈的HTML代碼:
<b>Author:</b> AUTHOR<br>
<b>ISBN:</b> 9780684857220 <br>
<b>Edition/Copyright:</b> 7<br>
<b>Publisher:</b> J+M<br>
<b>Published Date:</b> 1989<br>
這是nodeValue給出的內容:
Â
Author:Â AUTHOR ISBN:Â 9780684857220 Edition/Copyright:Â 7 Publisher:Â J+M Published Date:Â
1989
您是否嘗試在創建DOM文檔時指定編碼? 例如:
$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadXML($third_party_web_page_string);
要么
$doc = new DOMDocument('1.0', 'iso-8859-1');
$doc->loadXML($third_party_web_page_string);
如果這些都不起作用,您可以嘗試在數據上使用iconv
函數,然后再將其加載到DOM對象中。
原來這不是一個編碼問題,而是我使用了錯誤的方法。 這有效:
$doc = new DOMDocument();
$doc->appendChild($doc->importNode($second_td,true));
echo $doc->saveHTML();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.