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() を呼び出して、innerHTML を抽出します。
$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 で DOMNode の innerHTML を取得するための信頼できるソリューションを提供し、開発者がアクセスして変更できるようにします。外部ライブラリを使用しない DOM 要素のコンテンツ。
以上がPHP で DOM ノードから内部 HTML を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。