What are the potential pitfalls of using getElementsByTagName to delete XML elements in PHP?

Using getElementsByTagName to delete XML elements in PHP can be risky because it will return a live NodeList, meaning that as you delete elements from the NodeList, the indexes of the remaining elements will shift. This can lead to unintended deletions or errors in your code. To avoid this issue, it's recommended to iterate over the elements in reverse order when deleting them.

$doc = new DOMDocument();
$doc->loadXML($xmlString);

$elements = $doc->getElementsByTagName('element');

for ($i = $elements->length - 1; $i >= 0; $i--) {
    $element = $elements->item($i);
    $element->parentNode->removeChild($element);
}

$newXmlString = $doc->saveXML();