У меня есть то, что должно быть легкой задачей: удалите узлы <places> и их потомки из документа XML, оставив другие узлы. 
Я пробовал этот код, но он не работал …
$document->preserveWhiteSpace = false; $books = $xpath->query('piletilve_info/places'); //echo "4"; foreach ($books as $places) { while($places->hasChildNodes()) { $places->removeChild($places->childNodes->item(0)); } $places->parentNode->removeChild($places); }:$document->preserveWhiteSpace = false; $books = $xpath->query('piletilve_info/places'); //echo "4"; foreach ($books as $places) { while($places->hasChildNodes()) { $places->removeChild($places->childNodes->item(0)); } $places->parentNode->removeChild($places); }:$document->preserveWhiteSpace = false; $books = $xpath->query('piletilve_info/places'); //echo "4"; foreach ($books as $places) { while($places->hasChildNodes()) { $places->removeChild($places->childNodes->item(0)); } $places->parentNode->removeChild($places); }:$document->preserveWhiteSpace = false; $books = $xpath->query('piletilve_info/places'); //echo "4"; foreach ($books as $places) { while($places->hasChildNodes()) { $places->removeChild($places->childNodes->item(0)); } $places->parentNode->removeChild($places); }
Исходный XML для обработки:
 <piletilve_info> <places> <place> ... </place> </places> <other node> ... </other node> </piletilve_info> 
В реальных данных больше узлов, которые не являются местами, но для простоты в этом примере показано лишь несколько.
Я видел примеры C #, но мне не удается переносить код на PHP.
  Уточнение : в фрагменте кода переменная $books является только держателем для запрошенного списка.  Имя не имеет значения. 
Цель состоит в том, чтобы удалить весь узел, оставив другие узлы (в действительности их больше, но для простоты этот пример показывает все
$dom = new DOMDocument; $dom->load('places.xml'); foreach ($dom->getElementsByTagName('places') as $places) { $places->parentNode->removeChild($places); } echo $dom->saveXml();:$dom = new DOMDocument; $dom->load('places.xml'); foreach ($dom->getElementsByTagName('places') as $places) { $places->parentNode->removeChild($places); } echo $dom->saveXml();
  удалит все элементы <places> любом месте документа, включая любых детей. 
Вывод:
 <?xml version="1.0"?> <piletilve_info> <other> ... </other> </piletilve_info>