在PHP 中從DOM 節點提取內部HTML
PHP DOM 實作本身並沒有提供用於檢索給定DOMNode 的innerHTML 的方法。為了解決這個問題,開發人員使用 DOMinnerHTML() 函數設計了一個解決方法。
DOMinnerHTML 函數
DOMinnerHTML() 函數採用 DOMNode 作為其參數並傳回innerHTML 作為字串。它遞歸地迭代 DOMNode 的子節點,透過使用 $element->ownerDocument->saveHTML($child) 序列化每個子節點來建構innerHTML。
function DOMinnerHTML(DOMNode $element) { $innerHTML = ""; $children = $element->childNodes; foreach ($children as $child) { $innerHTML .= $element->ownerDocument->saveHTML($child); } return $innerHTML; }
範例用法
要使用DOMinnerHTML() 函數,請建立一個新的DOMDocument對象,將HTML 載入到其中,然後擷取包含所需節點的DOMNodeList。然後,迭代 DOMNodeList 並在每個節點上呼叫 DOMinnerHTML() 來提取其內部 HTML。
$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); }
此解決方案為在 PHP 中檢索 DOMNodes 的內部 HTML 提供了可靠的解決方案,使開發人員能夠存取和修改無需使用外部函式庫即可取得 DOM 元素的內容。
以上是如何在 PHP 中從 DOM 節點擷取內部 HTML?的詳細內容。更多資訊請關注PHP中文網其他相關文章!