Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Удаление элемента XML


Автор: WolfAlone 11.12.2009, 00:10
Здравствуйте! Недавно очень тесно столкнулся с XML. В голову пришла мысль, что его можно использовать в качестве "БД", для маленьких "сайтиков" (аля "визитка"). Почитал про разнообразные способы XML-парсинга...

Допустим, у нас есть вот такой XML-файл:
Код

<root>
<elem id="1">text1</elem>
<elem id="2">text2</elem>
<elem id="3">text3</elem>
</root>


Нашел множество функций для чтения, записи XML-файлов, но не нашёл ни одной функции для удаления элементов! В виду чего возник вопрос:
Есть ли какой-нибудь "стандартный" способ удаления элемента (например, нужно удалить elem с id=2) или эти действия можно произвести только "извращенным" путем (например, загрузка XML в массив, удаление элемента массива, перезапись XML-файла)?

Автор: bars80080 11.12.2009, 00:59
даже если и есть способ удаления (это надо смотреть классы типа simpleXML), то там всё равно будет загрузка файла в массив, удаление одной переменной и новая запись. просто это будет обставлено внешне вызовом одного метода

Автор: MystDeim 27.1.2010, 17:45
Код

$doc = new DOMDocument;
$doc->loadXML($data); //$data - строка с xml

$book = $doc->documentElement;
$chapter = $book->getElementsByTagName('elem')->item(0); // Тут выбираем например 1 элемент

$chapter->parentNode->removeChild($chapter); //Получаем родительскую ноду и удаляем нужную нам

echo $doc->saveXML();

Автор: WolfAlone 7.4.2011, 12:05
Всем спасибо! Вопрос закрыт. Разобрался до того, как успел вернуться к этой теме.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)