我想要在HTML页面上显示内容(CSS,孩子等),但此元素位于外部页面上。当我使用时:
$page = new DOMDocument();
$page->loadHTMLFile('about.php');
$text = $page->getElementById('text');
echo $text->nodeValue;
我只收到文字,但#text
也有一个图片作为孩子和一些CSS。我可以得到(和回声)那些,有点像iframe,但后来有一个元素。如果是这样,怎么样?
非常感谢。
答案 0 :(得分:1)
也许您正在寻找的是DOMDocument::saveHTML()
。
如果设置可选参数,则仅输出此特定节点。
$elm = $page->getElementById('text');
echo $elm->ownerDocument->saveHTML($elm);
答案 1 :(得分:0)
我找到了一个解决方案,虽然它没有检索CSS,但如果你只需要该元素及其子元素,这是我最好的选择。
使用simple_html_dom.php来完成所有难题。
我的外部页面:
<div id='text'>
<img src='img/dummy.png' align='left' alt='Image not available. Our apologies.'/>
<span>text</span><br/>
<p>
text
</p>
<p>
text
</p>
<p>
text
</p>
<div>
现在,我想要显示外部网页内容的页面:
<?php include('../includes/simple_html_dom.php'); ?>
....
<?php
$html = file_get_html('about.php');
$ret = $html->find('div#text', 0);
echo $ret;
?>
这是做什么的,它与其孩子一起回应元素,不幸的是没有CSS。