我正在使用DOM获取div标签的内容,但未显示内部html部分。 功能是:使用DOM获取div(包括子标签)的内容
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTMLFile("$url");
libxml_use_internal_errors(false);
$xpath = new DOMXPath($dom);
$divTag = $xpath->query('//div[@id="post"]');
foreach ($divTag as $val) {
echo $val->getAttribute('title') . ' - ' . $val->nodeValue . "<br />\n";
}
如果页面的源(只是DIV)
<div id="post">Some text <img src="..." /> <table>some codes</table></div>
然后函数返回只是
"Some text "
,但我想所有的HTML元素太像即:
Some text <img src="..." /> <table>some codes</table>
有什么办法可以做到吗?现在谢谢你。
谢谢,你没事。解决方法是:$ dom = new DOMDocument(); libxml_use_internal_errors(真); @ $ dom-> loadHTMLFile( “$网址”); libxml_use_internal_errors(假); $ xpath = new DOMXpath($ dom); $ divTag = $ xpath-> evaluate(“// div [@ id = post]”); $ divcontent = $ divTag-> item(0); echo $ dom-> saveXML($ divcontent);并且它完美地工作... – Alper 2009-11-24 22:41:25
自5.3.6开始,saveHTML支持一个元素参数,就像:: saveXML一样。 – 2015-02-04 18:32:44