ホームページ >バックエンド開発 >PHPチュートリアル >PHP で DOM ノードから内部 HTML と外部 HTML を取得するにはどうすればよいですか?

PHP で DOM ノードから内部 HTML と外部 HTML を取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-26 12:56:14632ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。