首页 >后端开发 >php教程 >如何在 PHP 中从 DOM 节点检索内部和外部 HTML?

如何在 PHP 中从 DOM 节点检索内部和外部 HTML?

Patricia Arquette
Patricia Arquette原创
2024-12-26 12:56:14636浏览

How Can I Retrieve Inner and Outer HTML from a DOM Node in PHP?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn