Entfernen Sie ein untergeordnetes Element mit einem bestimmten Attribut in SimpleXML für PHP

Sie können in SimpleXML für PHP ein Kinderelement mit einem bestimmten Attribut entfernen, indem Sie die Funktion xpath() verwenden. Die Funktion xpath() ermöglicht es Ihnen, nach Elementen zu suchen, die einen bestimmten XPath-Ausdruck erfüllen.

Hier ist ein Beispiel dafür, wie Sie ein Kinderelement mit dem Attribut "id" gleich "123" entfernen können:

<?php

// XML string
$xml_string = "<root>
  <node id='111'>Node 111</node>
  <node id='123'>Node 123</node>
  <node id='456'>Node 456</node>
</root>";

// Load the XML string into a SimpleXMLElement object
$xml = simplexml_load_string($xml_string);

// Use the xpath() method to search for a node with the id attribute equal to "123"
foreach ($xml->xpath("//*[@id='123']") as $node) {
    // Use the unset() function to remove the node
    unset($node[0]);
}

// Convert the SimpleXMLElement object back to an XML string
$new_xml_string = $xml->asXML();

// Output the modified XML string
echo $new_xml_string;

?>

Dieser Code lädt einen XML-String in ein SimpleXML-Objekt, verwendet dann die Funktion xpath() , um nach allen Elementen mit einem "id"-Attribut gleich "123" zu suchen. Die Schleife foreach iteriert durch die resultierenden Knoten und die Funktion unset wird verwendet, um jeden Knoten aus dem XML-Baum zu entfernen.