Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


привет. Я с 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');
}
ты правильно нашел ноду а удалить ее надо к предку обращаться и убить саму себя
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:00, 20-03-2008 | #2