簡體   English   中英

PHP的DomElement-> nodeValue有gobbly-gook

[英]PHP's DomElement->nodeValue has gobbly-gook

我正在使用PHP的DOMElement控件解析第三方網頁。 當我在瀏覽器中使用網頁並查看源代碼時,它很干凈,但是當我通過DOMElement-> nodeValue參數訪問某些節點時,HTML標記不存在,並且有幾個換行符和這個字符。 根據這個答案 ,這是出現編碼問題時出現的字符。

我也得到了那個gobbly-gook:

  • simplexml_import_dom($節點) - > asXML();
  • $ doc-> saveXML($節點);

我的問題是如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM