Heim >Backend-Entwicklung >PHP-Tutorial >Können Sie Elemente in einem geladenen DOM-Dokument löschen, ohne ein neues zu erstellen?

Können Sie Elemente in einem geladenen DOM-Dokument löschen, ohne ein neues zu erstellen?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 01:49:02835Durchsuche

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

Elemente mit DOMDocument löschen

Das Bearbeiten von HTML-Dokumenten ist eine häufige Aufgabe für Webentwickler. In PHP bietet die DOMDocument-Klasse eine praktische Möglichkeit, HTML-Code zu analysieren und zu bearbeiten. Während es möglich ist, ein neues DOMDocument von Grund auf zu erstellen, ist es in vielen Fällen effizienter, ein vorhandenes Dokument in ein DOMDocument-Objekt zu laden.

Eine der häufigsten Operationen beim Ändern eines HTML-Dokuments ist das Entfernen von Elementen. Betrachten wir den folgenden HTML-Code:

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

F: Ist es möglich, ein Element in einem geladenen DOM-Dokument zu löschen, ohne ein neues zu erstellen?

<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: Ja, es ist möglich, ein Element aus einem geladenen DOMDocument zu löschen, ohne ein neues zu erstellen:

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

Dieser Ansatz ändert das ursprüngliche DOMDocument-Objekt direkt. Die Eigenschaft DOMNode::$parentNode verweist auf den übergeordneten Knoten des aktuellen Knotens, und die Methode DOMNode::removeChild() entfernt den angegebenen untergeordneten Knoten vom übergeordneten Knoten.

Zusätzliche Ressourcen für die Arbeit mit DOMDocuments:

  • [DOMNode::$parentNode-Dokumentation](https://www.php.net/manual/en/domnode.parentnode.php)
  • [DOMNode::removeChild()-Dokumentation ](https://www.php.net/manual/en/domnode.removechild.php)
  • Wie entferne ich Attribute mit PHP DOMDocument?
  • Wie entferne ich ein HTML-Element mit dem DOMDocument-Klasse

Das obige ist der detaillierte Inhalt vonKönnen Sie Elemente in einem geladenen DOM-Dokument löschen, ohne ein neues zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn