2012-02-14 2 views
0

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

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

<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

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

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

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

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

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