Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

XML-файлы большого размера   Найти похожие ветки 

 
Dok_3D ©   (2002-03-19 07:28) [0]

У меня вопрос такой, кто-нибудь пробовал реально работать с большими XML-файлами (свыше 40 Мегабайт) достаточно сложной структуры ?

Допустим, просто рекурсивно пробежаться по всей структуре элементов. Насколько это быстро ?


 
Dok_3D ©   (2002-03-19 13:55) [1]

Ммммда ...


 
Дмитрий ©   (2002-03-19 14:46) [2]

Работал с ~ 3-4 мб, и скорость зависти от парсера. Они бывают (это моя терминология :) - "умные" и "не очень". Умный парсер, типа MSXML, грузит весь документ, проверяет его на велл-формедность, сверяет с DTD, заменяет всякие там сучности, и строит внутреннее дерево. Вот это последнее действие и является критичным :) Начинает жужжать винтом, свопить и т.п. Парсеры "попроще" (Perl XML::Parser) - событийные (встретил token - вызвал обработчик события), к ресурсам не столь требовательны.


 
Dok_3D ©   (2002-03-19 15:55) [3]

Понятно,
я тут вообще-то сам уже эмуляцию огромного файла состроил (40 Мегов).
При помощи msxml4 побегал по нему вперед-назад-вглубь-вширь. Правда без ссылок на DTD или XSD.
Память, конечно, жрет, но навигация в принципе быстрая.



 
alexandervasjuk ©   (2002-03-19 17:04) [4]

Там у него (msxml3 & 4) есть так называемый SAX доступ. Он именно в терминологии Дмитрия делает парсер из умного не очень умного, т.е. событийный. Не столь удобный (события обрабатываешь ты сам), но нересурсоемкий. Детально описан в Help"е.



Страницы: 1 вся ветка

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
1-144
dolphin
2002-03-22 02:25
2002.04.01
Как определить есть ли файл на сервере.


7-329
Gelios
2002-01-02 08:41
2002.04.01
Подскажите плз, В чем причина того, что при создании дистрибутива, программа совершенно не реагирует


14-313
madburro
2002-02-15 22:47
2002.04.01
Optical mouse


6-264
Velocity
2002-01-21 06:07
2002.04.01
DLL и сокеты


14-293
Prog_SKV1
2002-02-15 09:04
2002.04.01
Для затравки разговора !!!