Heim > Artikel > Backend-Entwicklung > Wie lösche ich Knoten aus einem XML-Dokument mit SimpleXML und DOMDocument in PHP?
Knoten in SimpleXML löschen
XPath-Knoten abfragen
So löschen Sie einen Knoten in SimpleXML mit XPath, folgen Sie diesen Schritten:
Knotenentfernung
Um den übergeordneten Knoten des ausgewählten Knotens zu entfernen, können Sie unset($) nicht verwenden Elternteil). Stattdessen müssen Sie die Methode __unset() verwenden oder auf DOMDocument zurückgreifen.
Verwendung von __unset()
Die Methode __unset() wird aufgerufen, wenn Sie versuchen, die Einstellung aufzuheben eine Eigenschaft eines Objekts. Um einen Knoten mit __unset() zu entfernen, erstellen Sie ein neues SimpleXMLElement-Objekt und deaktivieren Sie den gewünschten Knoten, wie unten gezeigt:
<code class="php">$newNode = new SimpleXMLElement('<a><b></b></a>'); unset($newNode->b); echo $newNode->asxml(); // Prints <a></a></code>
Verwenden von DOMDocument
DOMDocument bietet mehr detaillierte Kontrolle über die XML-Manipulation. So entfernen Sie einen Knoten mit DOMDocument:
Beispiel mit DOMDocument
<code class="php">$doc = new DOMDocument; $doc->loadxml('<foo><items><info><item_id>123</item_id></info></items></foo>'); $item_id = 123; $xpath = new DOMXpath($doc); foreach ($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) { $node->parentNode->removeChild($node); } echo $doc->savexml(); // Prints <foo><items><info><item_id>123</item_id></info></items></foo></code>
Mit diesen Techniken können Sie Entfernen Sie mithilfe von SimpleXML und DOMDocument effektiv Knoten aus XML-Dokumenten.
Das obige ist der detaillierte Inhalt vonWie lösche ich Knoten aus einem XML-Dokument mit SimpleXML und DOMDocument in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!