我正在使用PHP的DOMElement控件解析第三方网页。当我在浏览器中使用网页并查看源代码时,它很干净,但是当我通过DOMElement-> nodeValue参数访问某些节点时,HTML标记不存在,并且有几个换行符和此字符Â 。根据{{3}},这是出现编码问题时出现的字符。
我也可以使用:
获得那个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
答案 0 :(得分:2)
您是否尝试在创建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);
如果这些都不起作用,您可以在将数据加载到DOM对象之前尝试对数据使用iconv
函数。
答案 1 :(得分:2)
原来这不是编码问题,而是我使用了错误的方法。这有效:
$doc = new DOMDocument();
$doc->appendChild($doc->importNode($second_td,true));
echo $doc->saveHTML();