php - 如何从 DOMDocument 输出中过滤 <body> 内容?

标签 php html domdocument

以下代码输出解析后的 html:

$domd = new DOMDocument('5.0', 'utf-8');
libxml_use_internal_errors(true);
$domd->loadHTML(mb_convert_encoding(($postDetails['content']), 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();
echo $domd->saveHTML();

但是,它会输出额外的标签,例如 <html> , <head>等等。我只想获取 body 内的内容标签。我如何实现这一目标?

例如:如果 <body>标签包含<p>或其他可能包含内容的标签,我需要按原样显示它们。

最佳答案

saveHTML() 支持可选参数 $node 。使用它,您可以指定文档中应导出的节点而不是整个文档。如果你想导出<body>仅,然后使用:

echo $domd->saveHTML($domd->getElementsByTagName('body')->item(0));

关于php - 如何从 DOMDocument 输出中过滤 <body> 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27295463/

相关文章:

javascript - 使用Jquery刷新表

php - Mysql ON DUPLICATE KEY 错误

php - 如何获取 DOMElement 节点的 html 代码?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 使用ajax将值从html传递到php页面并在div中打印返回值

javascript - 如何创建一个自动将内容自动换行的 div,以便 div 永远不会水平增长大于其容器?

html - 2 <li> 之间的幻象空白

javascript - 牛顿拉夫森法 JavaScript

java - 如何从 Java 中的 XMLUnit 测试中删除属性?

php - 如何将 str_replace 与 DomDocument 一起使用