PHP 中的 DOM 操作:检索内部和外部 HTML
在 PHP 的 DOM 实现中,检索 DOM 节点的内部或外部 HTML 是不简单。与其他开发环境不同,PHP 缺乏专门为此目的设计的原生函数。
解决方案
为了克服这个问题,开发人员使用 DOM 遍历和字符串操作设计了可靠的方法。这是一个准确提取内部和外部 HTML 的解决方案:
function DOMinnerHTML(DOMNode $element) { $innerHTML = ""; $children = $element->childNodes; foreach ($children as $child) { $innerHTML .= $element->ownerDocument->saveHTML($child); } return $innerHTML; } // Usage for outerHTML: // Recursively call DOMinnerHTML with parent as a parameter
示例:
$dom= new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->load($html_string); $domTables = $dom->getElementsByTagName("table"); // Iterate over DOMNodeList (Implements Traversable) foreach ($domTables as $table) { echo DOMinnerHTML($table); }
注意:
该解决方案利用 saveHTML() 方法进行节点遍历和 HTML 提取。它迭代指定元素的子节点,递归地处理它们以构建生成的内部或外部 HTML。
以上是如何在 PHP 中从 DOM 节点检索内部和外部 HTML?的详细内容。更多信息请关注PHP中文网其他相关文章!