Wie entferne ich effektiv einen übergeordneten Knoten mithilfe von XPath und SimpleXML in PHP?

Barbara Streisand
Freigeben: 2024-10-26 02:22:02
Original
977 Leute haben es durchsucht

How to Effectively Remove a Parent Node Using XPath and SimpleXML in PHP?

So entfernen Sie einen XPath-Knoten mit SimpleXML

SimpleXML ist eine PHP-Erweiterung, die die Arbeit mit XML vereinfacht. Es kann jedoch verwirrend sein, einen übergeordneten Knoten mithilfe von XPath-Abfragen zu entfernen.

Im angegebenen Beispiel verwendet der Code XPath, um ein bestimmtes Element anhand seiner ID zu finden, und versucht, seinen übergeordneten Knoten zu deaktivieren. Dieser Ansatz entfernt jedoch nicht wirklich den übergeordneten Knoten.

Um einen Knoten effektiv zu entfernen, können Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein neues SimpleXMLElement-Objekt aus der XML-Zeichenfolge .
  2. Verwenden Sie XPath, um den Zielknoten wie im Beispiel zu finden.
  3. Verwenden Sie die unset()-Methode für die Objektreferenz, um ihn zu entfernen.

Die geänderte Der Code würde so aussehen:

<code class="php">$xml = new SimpleXMLElement($xmlString);
$data = $xml->xpath('//items/info[item_id="' . $item_id . '"]');
unset($data[0]);</code>
Nach dem Login kopieren

Alternativer Ansatz mit DOMDocument

Alternativ können Sie die DOMDocument-Klasse zur weiteren Kontrolle der XML-Manipulation verwenden. Hier ist ein Beispiel:

<code class="php">$doc = new DOMDocument();
$doc->loadXML($xmlString);
$item_id = 456;
$xpath = new DOMXPath($doc);
foreach($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->saveXML();</code>
Nach dem Login kopieren

Diese Methode entfernt den gesamten Artikelknoten für die angegebene Artikel-ID.

Das obige ist der detaillierte Inhalt vonWie entferne ich effektiv einen übergeordneten Knoten mithilfe von XPath und SimpleXML in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!