如何从DOMDocument输出中过滤内容?

时间:2014-12-04 13:38:01

标签: 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>或其他可能包含内容的标记,我需要按原样显示这些标记。

1 个答案:

答案 0 :(得分:3)

saveHTML()支持可选参数$node。使用它,您可以在Document中指定一个节点,该节点应该导出而不是整个文档。如果您只想导出<body>,请使用:

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