парсинг XML-канала с помощью NSXMLParser - PullRequest
0 голосов
/ 18 января 2012

Как мне проанализировать этот вид XML-канала с NSXMLParser: http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml?

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

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Бендик был прав, поскольку я не знаю причину вашего расставания, поэтому я предложу вам следующие шаги, убедитесь, что вы успешно прошли все этапы во время анализа,

  • Создайте объект синтаксического анализатора xml.
  • Установите делегат синтаксического анализатора.
  • Как говорит Бендик, используйте следующий метод делегата для синтаксического анализа каждого узла канала xml.

    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict

  • Используя attributeDict типа NSDictionary, вы можете получить значения для соответствующего ключа «атрибут»

  • Не забыл поставить пустую проверку перед тем, как получить атрибутзначения (при разборе XML-файлов вы получите символ пробела для каждого узла).
0 голосов
/ 18 января 2012

Поскольку вы не объясните, в чем проблема с вашим XML, я буду предполагать, что вы имеете в виду тот факт, что ваш XML-файл содержит много атрибутов (code="EUR" и т. Д.) И никаких значений в элементах , Если вы посмотрите на ссылку NSXMLParserDelegate , вы увидите, что у вас есть функция

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict

Последний параметр, attributeDict, будет содержать атрибуты элемента, в котором вы сейчас находитесь. Просто извлеките атрибуты отсюда и делайте с ними что хотите.

...