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

标签 php dom domdocument dom-node

我有这个 html 代码:

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

我已经可以使用这个函数获取“foo”元素(但只有它的内容):

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 标签(包括它的属性)。我该怎么做?

最佳答案

使用可选参数 DOMDocument::saveHTML : 这表示“仅输出此元素”。

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

请注意,该参数仅适用于 PHP 5.3.6。在此之前,您需要使用 DOMDocument::saveXML反而。结果可能略有不同。另外,如果您已经有了对文档的引用,您可以这样做:

$doc->saveHTML($node);

关于php - 如何获取 DOMElement 节点的 html 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909787/

相关文章:

php - 防弹 SimpleXMLElement

javascript - 使用 jquery 构造 DOM 元素

javascript - Internet Explorer 中的 element.dataset

php - Laravel 5 PHP Domdocument 400 错误请求

javascript - 使图像可拖动到 HTML5 Canvas,将图像移出 Canvas

php - 在PHP中,如何在两个变量名之间添加下划线

php - 用于在 linux/php 中备份数据库的 cron 作业

c# - 是否可以像在 C# 中那样在 PHP 中创建嵌套类?

javascript - 如何在 JavaScript 中访问父元素的子元素

PHP DOMDocument getElementsByTagname?