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

PHP で DOM ノードから内部 HTML を抽出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 13:56:11887ブラウズ

How Can I Extract Inner HTML from DOM Nodes in PHP?

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

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