У меня есть следующий код:
NSString *subtitle = [[[node elementsForName:@"subtitle"] objectAtIndex:0] stringValue];
NSString *duration = [[[node elementsForName:@"itunes:duration"] objectAtIndex:0] stringValue];
Первая строка работает отлично. Вторая строка, хотя не будет работать. Я предполагаю, что это имеет некоторое отношение к пространствам имен, но я довольно плохо знаком со всем этим так, я ценил бы любое руководство.Спасибо!
Оказывается, что я могу использовать elementsForLocalName:URI:
считать элемент правильно. Теперь проблема состоит в том, что, так как я пользуюсь библиотекой TouchXML, не кажется, что метод был отображен на CXMLElement
структура (см. здесь).
Таким образом, вопрос теперь: как я могу преобразовать a CXMLElement
к NSXMLElement
так, чтобы я мог использовать тот метод?
"itunes" - это идентификатор пространства имен. Сам по себе он не имеет никакого значения, он просто связывает URI с рассматриваемым элементом. Похоже, что вы используете RSS-расширения iTunes, которые находятся в пространстве имен http://www.itunes.com/dtds/podcast-1.0.dtd
.
Поэтому для элементов с пространством имен, я думаю (я не знаком с Objective-C или NSXML :P), вы должны использовать elementsForLocalName
вместо:
[node elementsForLocalName: @"duration" URI: @"http://www.itunes.com/dtds/podcast-1.0.dtd"]
Для ответа на второй вопрос смотрите комментарии ниже.