У меня есть задача, которая должна быть простой: удалите узлы и их потомки из XML-документа, оставив другие узлы.Удалить все элементы определенного типа из XML-документа с помощью PHP
Я попробовал этот код, но он не работает ...
$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
является держателем только для запрошенного списка. Имя не имеет значения.
Обратите внимание, что «это не сработало» почти ничего не говорит. Вместо того, чтобы говорить нам, что что-то не делало то, что вы хотели, расскажите нам, что он сделал. Помимо этого, это хорошая запись: вы сообщаете нам, что вы хотите выполнить, и покажите [минимальный, но достаточно полный и репрезентативный пример кода] (http://sscce.org/) и данные, над которыми он работает. – outis