Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрое чтение XML, MS XML 
:(
    Опции темы
Coder
Дата 9.6.2010, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Всем привет. использую стандартный шаблон для чтения XML библиотекой от MS.

Код

var
  XML : IXMLDocument;

begin
  CoInitialize(nil);
  XML:=LoadXMLDocument(_File);


.....

end


В файле около 30000 узлов. Моя программа должна загружать данные из XML в свою память, для этого нужно сначала узнать число узлов для выделения памяти. Свойство ChildNodes.Count считает кол-во узлов в моем примере очень долго. Если даже его не вызывать, а читать все, пока не кончится файл, то он так же разбирается медленно. Видимо при вызове Count данные кешируются...

Подскажите, как быстро разобрать XML?

Это сообщение отредактировал(а) Coder - 9.6.2010, 08:10
PM MAIL   Вверх
cemick
Дата 9.6.2010, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 6



XMLDocument впринципе не быстр, как совет можете попробовать использовать jclSimpleXML. В задаче чтения XML всегда присутствует вопрос производительности, если у вас так много узлов, может вам стоит пересмотреть структуру хранения на более простую?
PM MAIL WWW   Вверх
Coder
Дата 9.6.2010, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Цитата(cemick @ 9.6.2010,  16:34)
XMLDocument впринципе не быстр, как совет можете попробовать использовать jclSimpleXML. В задаче чтения XML всегда присутствует вопрос производительности, если у вас так много узлов, может вам стоит пересмотреть структуру хранения на более простую?

Я читаю файл формата GPX, поэтому структуру менять не могу. Знаю пример приложения, которое так же использует XMLDocument и читает данный файл за пару секунд! Правда написано оно на С++ и "внутренности" не доступны. Вот я и подумал, может есть какие-то скрытые приемы по работе с MS XML ?

jclSimpleXML сейчас глянем...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.