Разница между синтаксическим анализатором TouchXML и GDataXML

У меня есть два варианта для разбора действительно толстого XML-файла,

  • TouchXML
  • GDataXML

Это большая работа, потому что файл XML очень большой. Я подумал спросить людей, которые уже работали с этими парсерами.

  1. Какой из них лучше для толстых XML-файлов?
  2. Я нашел сообщение в блоге, в котором говорится, что TouchXML не редактирует и не сохраняет файлы XML, тогда как GDataXML имеет эту функцию. Что именно они подразумевают под функцией редактирования / сохранения файла XML?

person TeaCupApp    schedule 20.12.2011    source источник
comment
Раньше я использовал GDataXML, и должен сказать, что производительности не хватало. С тех пор я перешел на использование самого libxml2 (в оболочке Cocoa здесь). Настройка парсера - это немного больше работы, но, на мой взгляд, улучшения скорости и использования памяти определенно того стоят.   -  person sudo rm -rf    schedule 20.12.2011


Ответы (1)


Посмотрим, смогу ли я ответить на ваши вопросы:

  1. Какой из них лучше для толстых файлов XML? Ответ отрицательный. Оба являются парсерами DOM, которые фактически загружают весь документ в память для ускорения запросов. Если вы разбираете большой файл, вам лучше использовать парсер SAX, такой как встроенный NSXMLParser, или даже основанную на SAX версию libxml2.
  2. Что именно они подразумевают под функцией редактирования / сохранения XML-файла? Что ж, предположим, у вас есть XML-файл, в котором содержатся настройки вашего приложения. Если вы откроете этот файл и внесете изменения, вы захотите их сохранить, верно? Вот где начинается запись. Парсеры, которые позволяют записывать, позволяют сохранять представление XML-файла в памяти в фактический файл, который может быть записан на диск.
person sudo rm -rf    schedule 20.12.2011