[英]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.