Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Удаление узлов
Форумы портала PHP.SU » » XML и его обработка » Удаление узлов

Страниц (1): [1]
 

1. worsvch - 15 Ноября, 2014 - 23:05:22 - перейти к сообщению
Есть массив, есть xml-файл.
Используется DOMDocument. Делаю парсинг xml файла по определенному тэгу и если значение атрибута имеется в массиве, то узел полностью удаляется. Все работает, но смущает один момент. Чтобы полностью удалить все совпадения, нужно парсировать 2 раза: сначала оригинал, а затем полученный новый файл. Для удаления использую следующий кусок кода:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($doc->getElementsByTagName('Zapchast') as $zapch) {
  3.         if (in_array($zapch->getAttribute('Name'),$massiv_zapchastey)) {
  4.                 if ($zapch->parentNode->removeChild($zapch)) {
  5.                         echo $count." \t -> ".$zapch->getAttribute('Name')."\n";
  6.                 }
  7.                 $count++;
  8.         }
  9. }
  10.  

 

Powered by ExBB FM 1.0 RC1