привет. Я с xpath никогда не работал, однако все новое для меня интересно. Я сразу заметил что находятся нужные элементы правильно, главное удалить правильно. Покопавшись немного сотворил следующее:
Код:
//-------------Переделал твой пост на мой get так что внимательней
$act = $_GET["act"];
$doc = new DOMDocument;
// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;
// source
$doc->Load('test.xml');
if ($act=='del') // delete
{
$doc->load('test.xml');
$xpath = new DOMXPath($doc);
//-------------тут маленько исправил
$query = "//cat[@id=".$_GET['id']."]";
$entries = $xpath->query($query);
foreach ($entries as $entry) {
echo "***-";
echo $entry->getAttribute('id');
echo "+***";
if($entry->getAttribute('id')==$_GET['id'])
//----------------вот это решение
$entry->parentNode->removeChild($entry);
}
$doc->save('test2.xml');
}
ты правильно нашел ноду а удалить ее надо к предку обращаться и убить саму себя