如何获取带有html标签的PHP DOM getElementsByTagName('body')


How to get PHP DOM getElementsByTagName('body') with html tags

我正在获取正文内容,但在正文内部没有html标签(已清理)。我需要在正文中使用所有 html 标签。我想对代码进行哪些更改?

$doc = new DOMDocument();
@$doc->loadHTMLFile($myURL);
$elements2 = $doc->getElementsByTagName('body');
        foreach ($elements2 as $el2) {
            echo $el2->nodeValue, PHP_EOL;
        echo "<br/>";
}   
您需要

body子节点另存为 HTML。我建议使用 Xpath 来获取节点,这样可以避免外部循环:

$html = <<<'HTML'
<html>
  <body>
    Foo
    <p>Bar</p>
  </body>
</html>
HTML;
$document = new DOMDocument();
$document->loadHtml($html);
$xpath = new DOMXpath($document);
$result = '';
foreach ($xpath->evaluate('//body/node()') as $node) {
  $result .= $document->saveHtml($node);
}
var_dump($result);

输出:

string(29) "
    Foo
    <p>Bar</p>
  "