Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > XML и гемопрный парс


Автор: Platon 30.11.2007, 16:51
Здравствуйте, уважаемые.
Сабж: http://forum.vingrad.ru/faq/topic-158003.html
Вот скажите мне, что так сложно???
В PHP есть 1 функция, которая выводит результат в виде hash массива, и к элементам очень просто обратиться:
Код

$xml["internetshop"]["goods"]["orderedgoods"]["paidgoods"][0/1/2/3/4/5/...]


А тут, такой парс, просто атас, я не представляю, как вложенные теги разбирать :(

Добавлено через 4 минуты и 51 секунду
хммммм, не DOM парсер ли мне подходит?

Автор: Hidrag 30.11.2007, 17:08
Если xml не многомегабайтовый то используй DOM. Мне он показался куда более удобным и логичным. Скачай вот этот http://forum.vingrad.ru/index.php?showtopic=9229&view=findpost&p=993183 он тебе поможет!

Автор: makados 30.11.2007, 17:56
может попробовать JDOM - оптимизированный под джавистов DOM-парсер?

Автор: Platon 30.11.2007, 18:05
А у них разница есть? я думал это одно и то же.

Добавлено @ 18:09
Хочется узнать, какая между ними ощутимая разница.
Главный критерий - быстрая работа, и можно без наворотов.

Автор: nornad 1.12.2007, 00:17
Цитата(Platon @  30.11.2007,  21:05 Найти цитируемый пост)
Хочется узнать, какая между ними ощутимая разница.

DOM - загрузка всего хмл-файла в память и составление дерева элементов. После распарсивания хмл ты уже будешь работать с деревом.
SAX - событийная обработка хмл, когда парсер распознаёт очередной элемент хмл и генерирует соответствующее событие. Ты это событие ловишь (или не ловишь  smile ) и производишь необходимые тебе действия. В памяти при этом нет полного дерева хмл.

Цитата(Hidrag @  30.11.2007,  20:08 Найти цитируемый пост)
используй DOM. Мне он показался куда более удобным и логичным. 

Удобство и логичность - вещи субъективные. Сакс тоже удобен и логичен, если уметь им пользоваться.

Один из критериев выбора DOM / SAX состоит в определении того, с файлами какого объёма придётся работать парсеру. Натравливать DOM-парсер на хмл размером под гигабайт - дело очень несерьёзное, даже если у тебя есть серверный кластер высокой мощности.
Кроме того, часто хмл парсится не "просто так", а с целью обработки некоторых определённых его узлов - например, когда хмл используется для передачи данных в программу извне. В этом случае событийная модель SAX очень даже удобна.

Автор: Platon 1.12.2007, 01:00
Отлично я так и думал, значит DOM мне вполне подойдет.

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