ホームページ >バックエンド開発 >PHPチュートリアル >新しい DOMDocument を作成せずに、ロードされた DOMDocument 内の要素を削除できますか?

新しい DOMDocument を作成せずに、ロードされた DOMDocument 内の要素を削除できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 01:49:02834ブラウズ

 Can You Delete Elements in a Loaded DOMDocument Without Creating a New One?

DOMDocument を使用した要素の削除

HTML ドキュメントの操作は、Web 開発者にとって一般的なタスクです。 PHP では、DOMDocument クラスは HTML コードを解析して操作するための便利な方法を提供します。新しい DOMDocument を最初から作成することもできますが、多くの場合、既存のドキュメントを DOMDocument オブジェクトに読み込む方が効率的です。

HTML ドキュメントを変更する際の最も一般的な操作の 1 つは要素の削除です。次の HTML コードを考えてみましょう:

<code class="html"><p><a href="#">First</a></p>
<p><a href="#">Second</a></p>
<p><a href="#">Third</a></p></code>

Q: 新しい要素を作成せずに、ロードされた DOMDocument 内の要素を削除することは可能ですか?

<code class="php">$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTML($html);

foreach ($dom->getElementsByTagName('a') as $href) {
    if ($href->nodeValue == 'First')
        // delete
}</code>

A: はい、新しい DOMDocument を作成せずに、ロードされた DOMDocument から要素を削除することは可能です。

<code class="php">$href->parentNode->removeChild($href);</code>

このアプローチでは、元の DOMDocument オブジェクトが直接変更されます。 DOMNode::$parentNode プロパティは現在のノードの親ノードを参照し、DOMNode::removeChild() メソッドは指定された子ノードを親ノードから削除します。

DOMDocuments を操作するための追加リソース:

  • [DOMNode::$parentNode ドキュメント](https://www.php.net/manual/en/domnode.parentnode.php)
  • [DOMNode::removeChild() ドキュメント] ](https://www.php.net/manual/en/domnode.removechild.php)
  • PHP DOMDocument を使用して属性を削除する方法?
  • DOMDocument クラス

以上が新しい DOMDocument を作成せずに、ロードされた DOMDocument 内の要素を削除できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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