Разбор NSXMLDocument в пользовательские объекты - PullRequest
0 голосов
/ 14 февраля 2012

Используя NSXMLDocument, без использования XPath, существует ли простой способ проанализировать документ XML и десериализовать его в пользовательские объекты для создания иерархии дерева объектов?

Например, если у меня есть xml, показанный ниже, возможно ли поместить детали в объект Restaurant и контентный объект внутри него?

<restaurants>
   <content>spanish name</content>
   <content>english name</content>
</restaurant>
<spa>
   <content>spa spanish name</content>
   <content>spa english name</content>
</spa>

Я буду использовать ваш ответвыше, чтобы расширить его для программирования в kissxml в iOS.Поскольку в документе kissXML упоминается, что синтаксический анализатор XML ведет себя так же, как NSXMLDocument, я задал вопрос, используя NSXMLDocument.

1 Ответ

1 голос
/ 05 октября 2012

Если вы знаете ожидаемую структуру контента, проще всего просто использовать NXMLParser и перебирать ее, ища нужные вам биты и отслеживая предыдущий бит, создавая объект таким, каким вы его нашли.

Если вы хотите использовать древовидный подход, подумайте об изучении XQuery и XPath, они не так уж и плохи.Без них единственное, что на самом деле дает NSXMLDocument, - это привязки Какао.

В конце дня вы должны каким-то образом преобразовать свои данные.

С NSXMLDocument вы все равно преуспеете в проверке на соответствиеXML DTD, если это возможно, чтобы убедиться, что у вас есть хорошие данные.

С NSXMLParser вы можете обрабатывать вещи без формального DTD.Вам нужно только беспокоиться о том, насколько велики данные, как вы хотите их проанализировать, а затем выполнить несколько проб и ошибок с тестовыми данными, чтобы убедиться, что они получают то, что вам нужно или нужно.

...