如何使用html标记获取PHP DOM getElementsByTagName(';body';)

如何使用html标记获取PHP DOM getElementsByTagName(';body';),php,html,dom,Php,Html,Dom,我正在获取正文内容,但正文中没有html标记(已清除)。我需要在正文中包含所有html标记。我想在代码中更改什么 $doc = new DOMDocument(); @$doc->loadHTMLFile($myURL); $elements2 = $doc->getElementsByTagName('body'); foreach ($elements2 as $el2) { echo $el2->nodeValue, PHP_E

我正在获取正文内容,但正文中没有html标记(已清除)。我需要在正文中包含所有html标记。我想在代码中更改什么

$doc = new DOMDocument();
@$doc->loadHTMLFile($myURL);

$elements2 = $doc->getElementsByTagName('body');

        foreach ($elements2 as $el2) {
            echo $el2->nodeValue, PHP_EOL;
        echo "<br/>";
}   
$doc=newDOMDocument();
@$doc->loadHTMLFile($myURL);
$elements2=$doc->getElementsByTagName('body');
foreach($elements2作为$el2){
echo$el2->nodeValue,PHP\u EOL;
回声“
”; }
您需要将
正文
子节点保存为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);
$html=saveHtml($node);
}
var_dump($结果);
输出:

string(29) "
    Foo
    <p>Bar</p>
  "
string(29)”
福
酒吧

"
输出HTML,并由浏览器进行解释。使用
htmlentities()
或设置MIME类型(
header('Content-type:text/plain')
),或在浏览器中查看原始源代码。@ComFeek您喜欢这样说吗,它不起作用了,它在扔垃圾error@Wazan不,你用错了,试试这个:
htmlentities($el2->nodeValue,ENT\u HTML5),PHP\u EOL当我这样使用时,会生成不需要的关键字,如&NewLine&逗号。但是没有得到这些标记h,p,br,div。我想生成所有的。