Не может получить элемент XML с двоеточием в использовании имени TouchXML

У меня есть следующий код:

NSString *subtitle = [[[node elementsForName:@"subtitle"] objectAtIndex:0] stringValue];
NSString *duration = [[[node elementsForName:@"itunes:duration"] objectAtIndex:0] stringValue];

Первая строка работает отлично. Вторая строка, хотя не будет работать. Я предполагаю, что это имеет некоторое отношение к пространствам имен, но я довольно плохо знаком со всем этим так, я ценил бы любое руководство.Спасибо!


Оказывается, что я могу использовать elementsForLocalName:URI: считать элемент правильно. Теперь проблема состоит в том, что, так как я пользуюсь библиотекой TouchXML, не кажется, что метод был отображен на CXMLElement структура (см. здесь).

Таким образом, вопрос теперь: как я могу преобразовать a CXMLElement к NSXMLElement так, чтобы я мог использовать тот метод?

1
задан Community 23 May 2017 в 12:26
поделиться

1 ответ

"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"]

Для ответа на второй вопрос смотрите комментарии ниже.

2
ответ дан 2 September 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: