Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 00:35   #1
Zohei
Пользователь
 
Регистрация: 29.04.2010
Сообщений: 13
По умолчанию Ускорить импорт данных из xml в sqlite.(android)

Привет.
Ситуация следущая.
На сервере архив с xml-файлом, содержащий несколько тысяч товаров и весящий пару мб.
Я поступаю слетующим образом.
- Качаю архив
- Распаковываю

PHP код:
Vector zipEntries = new Vector();
ZipFile zf = new ZipFile(file);
Enumeration en zf.entries();
while(
en.hasMoreElements())    {
    
zipEntries.addElement((ZipEntry)en.nextElement());
}
Integer size zipEntries.size();
ZipEntry ze = (ZipEntry)zipEntries.elementAt(0); 
- и отдаю парсеру.
PHP код:
DocumentBuilderFactory builderFactory DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
DocumentBuilder builder builderFactory.newDocumentBuilder();
Document document builder.parse(is);
XPath xpath XPathFactory.newInstance().newXPath();

XPathExpression expr;
NodeList nodes;
int j;
Element node;

expr xpath.compile("/update/tables/studio/*");
nodes = (NodeListexpr.evaluate(documentXPathConstants.NODESET);
nodes.getLength();

for(
int i=0;i<j;i++) {
    
node = (Elementnodes.item(i);
    
String s_del_time xpath.evaluate("studio_del_time/text()"node);
    ..............
    
db.replaceStudios(s_del_times_del_frees_titles_del_prices_prices_region
        
s_cats_callbacks_time_starts_time_stops_dels_imgs_actions_id);

Вся проблема в том что парсер работает крайне медленно.

это мой первый опыт работы с java и xml, я понимаю что делаю что-то не так, вопрос что именно)
уже думал писать скрипт, формирующий не xml, а готовую sqlite базу и передавать ее андроиду в готовом виде.
Zohei вне форума Ответить с цитированием
Старый 09.11.2012, 04:59   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

DOM очень медленный из-за срабатывания мусоросборника, но довольно удобный для Android. Намного быстрее и легковеснее будет использование Pull Parsera, но на самом деле немного сложней в парсинге тегов и т.п.

Смотрите здесь
BOBAH13 вне форума Ответить с цитированием
Старый 11.11.2012, 12:02   #3
Zohei
Пользователь
 
Регистрация: 29.04.2010
Сообщений: 13
По умолчанию

действительно.. спасибо.
я просто с чего-то решил что xpath это не DOM.
Zohei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
импорт excel в sqlite Tirendus Microsoft Office Excel 1 01.12.2011 03:05
Выбор хранилища данных - XML или SQLite? Lindemann66 C/C++ Базы данных 9 02.08.2011 18:19
Импорт из XML -=pasha=- БД в Delphi 8 31.03.2011 11:44
Импорт из XML в Access Tarman Microsoft Office Access 0 26.01.2011 21:36
Импорт тегов из файлов формата mp3 в базу данных sqlite antonych SQL, базы данных 2 06.12.2009 21:06