首頁 >後端開發 >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