Название: разбор xml-документа Отправлено: lyalya от Февраль 02, 2010, 13:14 посоветуйте, пожалуйста...
в общем надо как-нить с сервера забирать документ, в котором список товаров, их цен, характеристик и т.п. Реализация на данный момент: на сервере все запихивается в xml, а на стороне клиента посредством XmlStreamReader разбирается (файл скачивается с сервера всего один раз в сутки, но разбирается каждый раз при запуске программы)... на данный момент документ размером примерно 2 Мб, но ожидается,что его размер будет расти. Не устраивает то,что клиенту приходится ждать определенное время, пока файл разберется.. Есть какие-нить более быстрые аналоги? Название: Re: разбор xml-документа Отправлено: BRE от Февраль 02, 2010, 13:19 Забрал файл, разобрал, собрал в базу данных.
Пользователи работают с БД. Название: Re: разбор xml-документа Отправлено: lyalya от Февраль 02, 2010, 13:26 но данных не настолько много,чтоб запихивать это все в БД.. тем более вполне вероятна ситуация,что человек запустил программу всего 1 раз в день, так вообще вечностью покажется составление нужного ему списка: время скачивания с сервера + разбор xml + запихивание в БД + выбор и подстановка в поля товаров,которые понадобятся пользователю... второй раз он это уже не запустит :(
Название: Re: разбор xml-документа Отправлено: crossly от Февраль 02, 2010, 13:50 2мб ему вечностью не покажутся... а пихать в бд мона любое количество данных.... в любом случае исходя из вашего вопроса вам нужно хранить разобранные данные..... как хранить это уже вам выбирать....
Название: Re: разбор xml-документа Отправлено: BRE от Февраль 02, 2010, 14:00 но данных не настолько много,чтоб запихивать это все в БД.. тем более вполне вероятна ситуация,что человек запустил программу всего 1 раз в день, так вообще вечностью покажется составление нужного ему списка: время скачивания с сервера + разбор xml + запихивание в БД + выбор и подстановка в поля товаров,которые понадобятся пользователю... второй раз он это уже не запустит :( ???Один раз в день, утром загружается xml, из него формируется новая база, один раз, утром. В дальнейшем все клиенты весь день работают быстро с базой данных. Название: Re: разбор xml-документа Отправлено: lyalya от Февраль 02, 2010, 14:21 Цитировать ??? Один раз в день, утром загружается xml, из него формируется новая база, один раз, утром. В дальнейшем все клиенты весь день работают быстро с базой данных. так это, скажем так, больше развлекательная программа, вряд ли кто будет с ней весь день "работать"... :) Под словами "загружается раз в день" имелось ввиду,что если пользователь запустит программу 2-й раз за сутки, то она уже не будет тянуть xml с сервера. Но не факт же,что он ее будет каждый день запускать. И тем более в зависимости от того, что пользователь выберет на предыдущих страницах - тянутся разные xml Название: Re: разбор xml-документа Отправлено: lyalya от Февраль 02, 2010, 14:23 2мб ему вечностью не покажутся... а пихать в бд мона любое количество данных.... в любом случае исходя из вашего вопроса вам нужно хранить разобранные данные..... как хранить это уже вам выбирать.... а какие могут быть варианты помимо БД.. сейчас дерево строится..может поэтому медленным кажется? Название: Re: разбор xml-документа Отправлено: crossly от Февраль 02, 2010, 14:56 ну можно хранить в том же xml с нужной тебе структурой... можно просто в файле.... а 2м можно и в DOM запихнуть...
Название: Re: разбор xml-документа Отправлено: lyalya от Февраль 02, 2010, 15:02 ну можно хранить в том же xml с нужной тебе структурой... можно просто в файле.... а 2м можно и в DOM запихнуть... странно как-то парсить xml и записывать в файл...нелогично что ли...потом просто еще файл парсить...... А DOM будет быстрее XmlStreamReader? может есть еще какие-нить средства? попалось на глаза qjson,но что-то такое чувство, судя по комментариям и малому количеству информации на этот счет, что это не очень хорошая идея.. Название: Re: разбор xml-документа Отправлено: crossly от Февраль 02, 2010, 15:14 Цитировать странно как-то парсить xml и записывать в файл... мил человек.... странно иметь желание хранить данные и не писать их на диск....Цитировать А DOM будет быстрее XmlStreamReader? думаю что если строить дерево то да....Название: Re: разбор xml-документа Отправлено: Alex Custov от Февраль 02, 2010, 16:03 мил человек.... странно иметь желание хранить данные и не писать их на диск.... можно хранить в sqlite в ":memory:" Название: Re: разбор xml-документа Отправлено: crossly от Февраль 02, 2010, 17:57 и что с ней будет после выхода из проги??
Название: Re: разбор xml-документа Отправлено: Alex Custov от Февраль 02, 2010, 18:20 и что с ней будет после выхода из проги?? Она удалится. // Ваш К.О. ;D Название: Re: разбор xml-документа Отправлено: Akaiten от Февраль 03, 2010, 10:19 По-моему разбор файла порядка нескольких мегабайт или пары десятков мегабайт происходит быстро, дальше хуже...
Можно разбирать в фоне и попутно выдавать пользователю готовые данные, т.к. в каждый момент времени пользователь работает только с небольшим объёмом данных... Ну и плюс кэшировать всё это дело, как было сказано выше. Название: Re: разбор xml-документа Отправлено: SASA от Февраль 03, 2010, 11:29 Время загрузки файла в дом может быть критично. Если структура документа сложна, файл несколко мегабайт, то время его парсинга будет заметно пользователю (~10 Мб - 15 сек). Сам столкнулся с такой проблемой. Тормозит фунция QDomDocument::setContent().
P.S. Может кто знает как ускорить. Но нужен именно дом. Название: Re: разбор xml-документа Отправлено: lyalya от Февраль 03, 2010, 13:30 было решено в файлики запихивать..значительно быстрее дело пошло! спасибо))
|