如何获得一个DOMElement节点的HTML代码? [重复](How to get html

2019-08-01 12:17发布

我有这样的HTML代码:

<html>
    <head>
    ...
    </head>
<body>
    <div>
    <div class="foo" data-type="bar">
        SOMECONTENTWITHMORETAGS
    </div>
    </div>
</body>

我已经可以得到此功能的“福”元素(但只有它的内容):

private function get_html_from_node($node){
  $html = '';
  $children = $node->childNodes;

  foreach ($children as $child) {
    $tmp_doc = new DOMDocument();
    $tmp_doc->appendChild($tmp_doc->importNode($child,true));
    $html .= $tmp_doc->saveHTML();
  } 
  return $html;
}

但我想返回一个DOMElement的所有html标签(包括其属性)。 我该怎么办呢?

Answer 1:

使用可选参数DOMDocument::saveHTML :这个说“输出这个元素只是”。

return $node->ownerDocument->saveHTML($node);

注意参数只能从PHP 5.3.6。 在这之前,你需要使用DOMDocument::saveXML代替。 结果可能会略有不同。 另外,如果你已经有了一个对文档的引用,你可以这样做:

$doc->saveHTML($node);


Answer 2:

PHP简单的HTML DOM解析器应该做的工作!



文章来源: How to get html code of DOMElement node? [duplicate]