PHP での DOM 操作: 内部 HTML と外部 HTML の取得
PHP の DOM 実装では、DOM ノードの内部または外部 HTML を取得します。単純ではありません。他の開発環境とは異なり、PHP にはこの目的のために特別に設計されたネイティブ関数がありません。
解決策
これを克服するために、開発者は DOM トラバーサルと文字列操作を使用する信頼性の高い方法を考案しました。以下は、内部 HTML と外部 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); }
注:
このソリューションは、ノードのトラバーサルと HTML 抽出に saveHTML() メソッドを利用します。指定された要素の子ノードを反復処理し、それらを再帰的に処理して、結果として得られる内部または外部 HTML を構築します。
以上がPHP で DOM ノードから内部 HTML と外部 HTML を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。