+ Ответить в теме
Показано с 1 по 4 из 4
  1. #1
    Пользователь Аватар для Goli
    Регистрация
    18.08.2010
    Адрес
    Нижний Новгород
    Сообщений
    109

    Работа с XML-файлом(Dom php5)

    Нужно удалить запись тег friend с определенным аттрибутом. Для этого я просматриваю все элементы и пока на нужный не наткнусь не удалю. В php-Коде это выглядит так
    PHP код:
    $dom = new DomDocument();
    $dom->load("data/profiles/id".$id.".xml");
    $friends $dom->getElementsByTagName('friend');
    foreach(
    $friends as $friend)
    {
    if(
    $friend->getAttribute("id")==$_GET['id'])
    {
    $dom->removeChild($friend);
    break;
    }
    }
    $dom->save("data/profile/id".$id.".xml"); 
    Кусок xml-файла в тегами friend
    Код:
    <friends>
    <friend id="2" nick="Slim"/>
    <friend id="3" nick="Tanyusha"/>
    </friends>
    Но выдается дураццкая ошибка:
    Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in /www/users/g/o/l/goli/friendact.php:22 Stack trace: #0 /www/users/g/o/l/goli/friendact.php(22): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in /www/users/g/o/l/goli/friendact.php on line 22

    Заранее спасибо.
    PHP Devel Studio - I'm lovin' it

  2. #2
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Я посоветую тебе использовать SimpleXML, а ошибка конечно гениальная - "ошибка - не найдена ошибка"))))

  3. #3
    Пользователь Аватар для Goli
    Регистрация
    18.08.2010
    Адрес
    Нижний Новгород
    Сообщений
    109
    Мне нужно удалить тег а в simpleXML нет функции удаления. Если мне нужно получить инфу из xml-Файла или добавить элемент, то я испольхую через dom xml, а редактирую через simpleXML. Мне так удобнее. Надо все-таки как-то удалить
    Последний раз редактировалось Goli; 17.12.2010 в 14:42.
    PHP Devel Studio - I'm lovin' it

  4. #4
    Ученик Аватар для stepka
    Регистрация
    13.02.2011
    Адрес
    Чебоксары
    Сообщений
    66
    Попробуйте как-то так, правда код не проверял, на скорую руку накидал...

    PHP код:
    $dom = new DomDocument();
    $dom->load("data/profiles/id".$id.".xml");
    $friends $dom->getElementsByTagName('friend');
    foreach(
    $friends as $friend
    {
         if(
    $elem=$friend->getElementById($_GET['id']))
         {
              
    $dom->removeChild($elem);
              break;
         }
    }
    $dom->save("data/profile/id".$id.".xml"); 
    Последний раз редактировалось stepka; 13.02.2011 в 23:58.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения