繁体   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