Вы можете использовать CWXMLTranslator
из https://github.com/jayway/CWFoundation для простого перевода из XML в объект домена.
Предположим, у вас есть этот класс домена:
@interface Book : NSObject {
}
@property(copy) NSString* author;
@property(copy) NSString* title;
@end
И этот XML:
<books>
<book>
<author>James Joyce</author>
<title>Ulysses</title>
</book>
<!-- MORE BOOKS HERE -->
</book>
Вам нужно только определить файл перевода, назвать его Book.xmltranslation
и добавить это:
book +> @root : Book {
author >> author;
title >> title;
}
Затем он будет использоваться для извлечения и трансляции XML-кода с сервера в живые экземпляры вашего Book
класса, например:
NSArray* books = [CWXMLTranslator translateContentsOfURL:url
withTranslationNamed:@"Book"
delegate:nil
error:NULL];
Это самый простой из доступных вариантов использования, перевод DSL может быть даже встроен, если хотите. CWXMLTranslator
также поддерживает гораздо более сложные операции, такие как преобразование типов в даты, URL-адреса, числа и т. Д. А также вложенные типы и прямой перевод в управляемые объекты Core Data.
Проект CWFoundation содержит всю необходимую документацию и пример проекта, который анализирует RSS-каналы.