Russian Qt Forum
Ноябрь 22, 2024, 23:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
XML
>
разбор xml-документа
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: разбор xml-документа (Прочитано 10404 раз)
lyalya
Гость
разбор xml-документа
«
:
Февраль 02, 2010, 13:14 »
посоветуйте, пожалуйста...
в общем надо как-нить с сервера забирать документ, в котором список товаров, их цен, характеристик и т.п. Реализация на данный момент: на сервере все запихивается в xml, а на стороне клиента посредством XmlStreamReader разбирается (файл скачивается с сервера всего один раз в сутки, но разбирается каждый раз при запуске программы)... на данный момент документ размером примерно 2 Мб, но ожидается,что его размер будет расти. Не устраивает то,что клиенту приходится ждать определенное время, пока файл разберется.. Есть какие-нить более быстрые аналоги?
Записан
BRE
Гость
Re: разбор xml-документа
«
Ответ #1 :
Февраль 02, 2010, 13:19 »
Забрал файл, разобрал, собрал в базу данных.
Пользователи работают с БД.
Записан
lyalya
Гость
Re: разбор xml-документа
«
Ответ #2 :
Февраль 02, 2010, 13:26 »
но данных не настолько много,чтоб запихивать это все в БД.. тем более вполне вероятна ситуация,что человек запустил программу всего 1 раз в день, так вообще вечностью покажется составление нужного ему списка: время скачивания с сервера + разбор xml + запихивание в БД + выбор и подстановка в поля товаров,которые понадобятся пользователю... второй раз он это уже не запустит
Записан
crossly
Гость
Re: разбор xml-документа
«
Ответ #3 :
Февраль 02, 2010, 13:50 »
2мб ему вечностью не покажутся... а пихать в бд мона любое количество данных.... в любом случае исходя из вашего вопроса вам нужно хранить разобранные данные..... как хранить это уже вам выбирать....
Записан
BRE
Гость
Re: разбор xml-документа
«
Ответ #4 :
Февраль 02, 2010, 14:00 »
Цитата: lyalya от Февраль 02, 2010, 13:26
но данных не настолько много,чтоб запихивать это все в БД.. тем более вполне вероятна ситуация,что человек запустил программу всего 1 раз в день, так вообще вечностью покажется составление нужного ему списка: время скачивания с сервера + разбор xml + запихивание в БД + выбор и подстановка в поля товаров,которые понадобятся пользователю... второй раз он это уже не запустит
Один раз в день, утром загружается xml, из него формируется новая база, один раз, утром.
В дальнейшем все клиенты весь день работают быстро с базой данных.
Записан
lyalya
Гость
Re: разбор xml-документа
«
Ответ #5 :
Февраль 02, 2010, 14:21 »
Цитировать
Один раз в день, утром загружается xml, из него формируется новая база, один раз, утром.
В дальнейшем все клиенты весь день работают быстро с базой данных.
так это, скажем так, больше развлекательная программа, вряд ли кто будет с ней весь день "работать"...
Под словами "загружается раз в день" имелось ввиду,что если пользователь запустит программу 2-й раз за сутки, то она уже не будет тянуть xml с сервера. Но не факт же,что он ее будет каждый день запускать. И тем более в зависимости от того, что пользователь выберет на предыдущих страницах - тянутся разные xml
Записан
lyalya
Гость
Re: разбор xml-документа
«
Ответ #6 :
Февраль 02, 2010, 14:23 »
Цитата: crossly от Февраль 02, 2010, 13:50
2мб ему вечностью не покажутся... а пихать в бд мона любое количество данных.... в любом случае исходя из вашего вопроса вам нужно хранить разобранные данные..... как хранить это уже вам выбирать....
а какие могут быть варианты помимо БД.. сейчас дерево строится..может поэтому медленным кажется?
Записан
crossly
Гость
Re: разбор xml-документа
«
Ответ #7 :
Февраль 02, 2010, 14:56 »
ну можно хранить в том же xml с нужной тебе структурой... можно просто в файле.... а 2м можно и в DOM запихнуть...
Записан
lyalya
Гость
Re: разбор xml-документа
«
Ответ #8 :
Февраль 02, 2010, 15:02 »
Цитата: crossly от Февраль 02, 2010, 14:56
ну можно хранить в том же xml с нужной тебе структурой... можно просто в файле.... а 2м можно и в DOM запихнуть...
странно как-то парсить xml и записывать в файл...нелогично что ли...потом просто еще файл парсить......
А DOM будет быстрее XmlStreamReader?
может есть еще какие-нить средства? попалось на глаза qjson,но что-то такое чувство, судя по комментариям и малому количеству информации на этот счет, что это не очень хорошая идея..
Записан
crossly
Гость
Re: разбор xml-документа
«
Ответ #9 :
Февраль 02, 2010, 15:14 »
Цитировать
странно как-то парсить xml и записывать в файл...
мил человек.... странно иметь желание хранить данные и не писать их на диск....
Цитировать
А DOM будет быстрее XmlStreamReader?
думаю что если строить дерево то да....
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: разбор xml-документа
«
Ответ #10 :
Февраль 02, 2010, 16:03 »
Цитата: crossly от Февраль 02, 2010, 15:14
мил человек.... странно иметь желание хранить данные и не писать их на диск....
можно хранить в sqlite в ":memory:"
Записан
crossly
Гость
Re: разбор xml-документа
«
Ответ #11 :
Февраль 02, 2010, 17:57 »
и что с ней будет после выхода из проги??
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: разбор xml-документа
«
Ответ #12 :
Февраль 02, 2010, 18:20 »
Цитата: crossly от Февраль 02, 2010, 17:57
и что с ней будет после выхода из проги??
Она удалится.
// Ваш К.О.
Записан
Akaiten
Гость
Re: разбор xml-документа
«
Ответ #13 :
Февраль 03, 2010, 10:19 »
По-моему разбор файла порядка нескольких мегабайт или пары десятков мегабайт происходит быстро, дальше хуже...
Можно разбирать в фоне и попутно выдавать пользователю готовые данные
, т.к. в каждый момент времени пользователь работает только с небольшим объёмом данных... Ну и плюс кэшировать всё это дело, как было сказано выше.
Записан
SASA
Гость
Re: разбор xml-документа
«
Ответ #14 :
Февраль 03, 2010, 11:29 »
Время загрузки файла в дом может быть критично. Если структура документа сложна, файл несколко мегабайт, то время его парсинга будет заметно пользователю (~10 Мб - 15 сек). Сам столкнулся с такой проблемой. Тормозит фунция QDomDocument::setContent().
P.S. Может кто знает как ускорить. Но нужен именно дом.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...