Подтвердить что ты не робот

Разработка iPhone - XMLParser против libxml2 и TouchXML

Я не могу найти сравнение этих методов синтаксического анализа. Какой из них наиболее часто используется?

С уважением. Мустафа

4b9b3361

Ответ 1

NSXMLParser является парсером SAX, что означает, что он проходит через XML-документ и сообщает вам (через методы делегата) различные события (например, запуск xml node, поиск атрибутов и т.д.). Этот тип обработки XML лучше всего подходит для синтаксического анализа огромных документов, и когда вам нужно всего лишь извлечь небольшой объем данных из большого файла.

В отличие от SAX - это DOM, где все дерево XML анализируется в памяти (обычно с одним вызовом), а затем вы можете свободно исследовать XML-документ из представленного API. С этим, как правило, гораздо проще работать, поскольку вы получаете произвольный доступ ко всему XML-документу.

Итак, первым вопросом, на который нужно ответить, является вопрос SAX vs DOM. Если вы беспокоитесь о больших файлах XML (скажем, 10 МБ или больше), вы можете захотеть придерживаться SAX. Если вы работаете с маленькими XML файлами или маленькими фрагментами XML, часто гораздо проще использовать DOM.

Если вы решите пойти с DOM, у вас есть несколько вариантов.

libxml2 - очень мощный API, написанный на C. Это в основном для использования в стиле DOM, но есть другие варианты, если вы стали опытными с ним. Но, как написано на C, он не часто привлекателен для тех, кто знаком с Objective-C (объектами и авторекламой), или теми, кто выходит из мира .Net. Таким образом, существует потребность/желание для родной Objective-C оболочки вокруг libxml, чтобы сделать ее более знакомой. TouchXML - одна из таких оболочек. Он работает хорошо, если вам нужен только доступ для чтения к XML. Если вы хотите изменить XML или создать XML-фрагменты/документы с нуля, я бы рекомендовал перейти с KissXML.

Ответ 2

См. Учебник по XML для iOS: как выбрать лучший XML-анализатор для вашего iPhone-проекта:

Есть много вариантов, когда дело доходит до разбора XML на iPhone. IPhone SDK поставляется с двумя разными библиотеками, и есть несколько популярных сторонних библиотек, таких как TBXML, TouchXML, KissXML, TinyXML и GDataXML. Как разработчик может выбрать лучший XML-парсер для своего проекта?

Недавно я рассмотрел различные варианты и расширил образец XMLPerformance от Apple, чтобы опробовать каждую из вышеупомянутых библиотек, чтобы узнать, как они работают и сравнить их производительность. Я думал, что Id делится тем, что я узнал до сих пор тем, кто может искать лучшую библиотеку XML для своего проекта iPhone.

В этом XML-руководстве хорошо дается подробное сравнение возможностей и производительности самых популярных библиотек iPhone, объяснение того, как выбирать между ними, и дать примерный проект, показывающий, как читать XML-данные, используя каждую из вышеуказанных библиотек..

Ответ 3

Существует еще одна хорошая блочная библиотека разбора на основе блоков - RaptureXML (github) ZaBlanc, он предоставляет API Objective-C поверх libxml2, я определенно рекомендую попробовать его.