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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Разбор XML

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Связь между DOMdocument DOMelement DOMnode и SimpleXML
Panoptik
Отправлено: 15 Ноября, 2011 - 22:29:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Доброго всем!

Возникла необходимость в использовании XML, прошелся по форумам, нашел кучи мануалов, но искать соль в горах инфы тяжело.
Вобщем создал неким образом XML:
PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = new DOMDocument('1.0','utf-8');  // DOM document
  3.     $galery = $xml->appendChild($xml->createElement('galery')); //DOM node
  4.    
  5.     $album = $galery->appendChild($xml->createElement('album'));
  6.     //создание объекта 1
  7.     $item = $album->appendChild($xml->createElement('item'));
  8.     //id записи
  9.     $itemid = $item->appendChild($xml->createElement('itemid'));
  10.     $itemid->appendChild($xml->createTextNode('1'));
  11.     //имя файла
  12.     $filename = $item->appendChild($xml->createElement('filename'));
  13.     $filename->appendChild($xml->createTextNode('photo1.jpg'));
  14.     //описание
  15.     $itemdescription = $item->appendChild($xml->createElement('description'));
  16.     $itemdescription->appendChild($xml->createTextNode('Это описание 1'));
  17.    
  18.     //создание объекта 2
  19.     $item = $album->appendChild($xml->createElement('item'));
  20.     //id записи
  21.     $itemid = $item->appendChild($xml->createElement('itemid'));
  22.     $itemid->appendChild($xml->createTextNode('2'));
  23.     //имя файла
  24.     $filename = $item->appendChild($xml->createElement('filename'));
  25.     $filename->appendChild($xml->createTextNode('photo2.jpg'));
  26.     //описание
  27.     $itemdescription = $item->appendChild($xml->createElement('description'));
  28.     $itemdescription->appendChild($xml->createTextNode('Это описание 2')); // DOM text
  29.    
  30.     $xml->formatOutput = true;
  31.     $xml->save('galery.xml');
  32.  


далее открываю его уже при помощи SimpleXML

PHP:
скопировать код в буфер обмена
  1.  
  2. $simplexml = simplexml_load_file('galery.xml');
  3.  
  4.     print_r($simplexml);
  5.  


Всё выводится замечательно, но вот когда я захотел изменить содержимое, тут возникли неприятности.
Нашел некую функцию преобразования из SimpleXML в DOM


Вот тут то и начались проблемы. Когда я создавал объект дом - это был "документ ДОМ", а после преобразования у меня получился "элемент ДОМ"

Понимаю что делаю коряво, так как брал огрызки кода в разных местах. Хотелось бы узнать как или чем преобразовывать ХМЛ данные для их удобной обработки? Может лучше пользоваться чисто функциями СимплХМЛ (и какими именно?) или чисто функциями ДОМ (тоже желательно указать методы для работы), и особенно интересует как именно приводить объекты ДОМ "документ", "узел/node" и "элемент" к единому виду?

ПыСы: ООП только осваиваю, так что воспринять всё очень нелегко. Буду признателен за помощь.

(Отредактировано автором: 15 Ноября, 2011 - 22:30:05)



-----
Just do it
 
 Top
caballero
Отправлено: 15 Ноября, 2011 - 23:21:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




На хрена вообще нужет DOMDocument для формированиея XML?
XML - это текстовый формат - просто пишешь строчки и все. Это разбирать XML нужен парсер.

И при чем тут ООП. У тебя есть готовый библиотечный модуль - изучи его функции и все.
В твоем случае достаточно формировать XML строками а разбирать SimpleXml


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Panoptik
Отправлено: 16 Ноября, 2011 - 00:01:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Цитата:
XML - это текстовый формат - просто пишешь строчки и все.
Это я в курсе, использую библиотеки для того чтобы всё было по стандартам

DOMDocument использовал - потому как это первое что попалось мне по созданию этих вещей. Собственно я и спрашивал правильно ли, и что может быть лучше и как его использовать. Поскольку уже сам немного въехал в SimpleXml, то буду скорее всего пользовать его
(Добавление)
а собственно каким самым простым способом создавать этот самый xml? чтото я не нашел функции в simpleXML


-----
Just do it
 
 Top
caballero
Отправлено: 16 Ноября, 2011 - 00:47:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




SimpleXML прежде всего для разбора предназначен, там нет многих функций по изменению XML.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB