Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Вниз

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"е.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.014 c
1-239             Zool                  2002-03-18 19:22  2002.04.01  
GetFileTime и SetFileTime


7-321             Aleksandr             2001-12-28 11:08  2002.04.01  
Как узнать, крупный или мелкий экранный шрифт установлен в системе?


14-316            mr_X                  2002-02-13 17:24  2002.04.01  
Кто подскажет, кто расскажет где можно взять файлы ресурсов, иконки всякие bmp-шки и т. п.


14-305            Lord Vader            2002-02-20 04:59  2002.04.01  
RUNDLL32.EXE - Перезагрузить компьютер в режиме MS-DOS


14-300            fliz                  2002-02-19 13:00  2002.04.01  
подскажите, откуда можно скачать нормальную версию Internet Explorer 6 ?