Библиотека для экспорта и импорта sqlite таблицы в XML для ObjC / iPhone - PullRequest
1 голос
/ 08 июня 2011

Да, я согласен, это домашнее задание - проанализировать xml с NSXMLParser и обновить с помощью DB.

Существует ли библиотека с открытым исходным кодом для экспорта данной таблицы sqlite db в xml? где он может использовать имя поля в качестве элемента / тега XML. Я хочу попробовать какое-нибудь проверенное решение.

Я разрабатываю модуль, в котором я бы экспортировал таблицы в xml и импортировал в db по требованию.

В настоящее время я использую https://github.com/skjolber/xswi для создания XML-файла. Это занимает довольно много времени и часто вылетает (Could not allocate data buffer) в самом конце (после завершения 90%), так как у меня есть около 100 000 записей тестовых данных. Я предполагаю, что это связано с распределением памяти, я очищаю NSDictionary, используемый после каждой записи, и добавляю в файл (не сохраняя всю память).

Кроме того, размер сгенерированного файла составляет около 70-80 Мб, а сжатая версия файла (.zip) - около 50 КБ Правильно ли создавать XML или CSV?

Было бы очень полезно, если бы кто-то предложил правильный метод для продолжения.

1 Ответ

3 голосов
/ 08 июня 2011

Обычно xml становится длинным и сложным, когда вы используете ВСЕ функциональные возможности, в минимальном случае вы сможете создать простой xml-файл из таблицы sqllite, просто написав

<?xml version="1.0"?>
<tablename>
   <row>
      <columnname1>content</columnname1>
      <columnname2>content</columnname2>
   </row>
   <row>
   </row>
</tablename>

Выполнение этого в цикле итерации для каждой строки не должно требовать выделения памяти, которое будет зависеть от размера таблицы. Вам не нужна внешняя библиотека для этого.

Что касается размера, xml не известен своей краткостью, но есть много повторений, поэтому он будет сильно сжиматься.

NSXMLParser - это SAB-подобный парсер EventBase, это означает, что у него также не должно быть проблем с размером файла xml. Он никогда не должен создавать представление всего XML-файла. У меня нет опыта работы с xswi, поэтому я не могу говорить за это.

Что касается сообщения об ошибке (вы можете найти это в исходном коде xswi), подумайте о том, как target-c обрабатывает память и когда автоматически освобождается память на самом деле освобождается. А затем посмотрите, как вы используете xswi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...