DOMDocument 节点获取 HTML 内容

Posted

技术标签:

【中文标题】DOMDocument 节点获取 HTML 内容【英文标题】:DOMDocument node get the HTML content [duplicate] 【发布时间】:2012-10-22 01:12:32 【问题描述】:

可能重复:innerhtml in php’s DomDocument?

我正在编写一个应用程序来从 rss 提要中获取预览内容。 为此,我想获取特定 div 的 HTML 内容。

我正在获取的文本如下所示

<P>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean egestas enim non tellus interdum mollis. Pellentesque accumsan, purus quis facilisis vulputate,</P>
<P>leo enim rhoncus velit, non consectetur lacus libero a eros. Fusce rutrum, sapien eget facilisis placerat, metus enim sagittis ante, quis elementum velit tortor sit amet purus. </P>
<P>Mauris accumsan, dolor quis mollis iaculis, metus nisl lacinia neque, vel condimentum erat nisl ut lorem. Cras vestibulum urna in nisl ullamcorper rhoncus tincidunt massa </P>
<P>pretium. Nunc dui est, imperdiet et vulputate sit amet, facilisis semper ante. Duis ac ornare elit. Morbi gravida dolor vitae nunc tempus a hendrerit odio posuere. Morbi </p>

但是当我卷曲页面并解析它并获取 nodeValue 时,我得到的文本没有段落标签

$dom = new DOMDocument();
$dom->validateOnParse = false;
$html = get_data($item['link']);
$dom->loadHTML($html);
$storycontents = $dom->getElementById('story-body-text');
echo '<TR><TD>'.$storycontents ->nodeValue.' </TD></TR>';

在 DOMDocument 中有没有办法获取特定 id 的“innerHTML”属性?

【问题讨论】:

php.net/manual/en/class.domnode.php#domnode.props.textcontent 应该适合你 【参考方案1】:

感谢@simone How to get innerHTML of DOMNode?

$tmp_dom = new DOMDocument(); 
$tmp_dom->appendChild($tmp_dom->importNode($child, true)); 
$innerHTML.=trim($tmp_dom->saveHTML()); 

没有出现在我的搜索中,但还是谢谢你。

【讨论】:

他说节点不是整个html内容 他是我?...哇,这太老了

以上是关于DOMDocument 节点获取 HTML 内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 HTML 包装器的情况下保存 DOMDocument 的 HTML?

PHP DOMDocument - 获取 BODY 的 html 源代码

DOMDocument & XPath - 每个节点的 HTML 标签

DOMDocument-防止空标记//检索没有xml声明的节点

如何使用 PHP 的 DOMDocument 获取元素的序列化 HTML?

使用 DOMDocument,是不是可以获取某个 DOM 中存在的所有元素?