Не удается получить элемент XML с двоеточием в имени, используя TouchXML
У меня есть следующий код:
NSString *subtitle = [[[node elementsForName:@"subtitle"] objectAtIndex:0] stringValue];
NSString *duration = [[[node elementsForName:@"itunes:duration"] objectAtIndex:0] stringValue];
Первая строка работает отлично. Вторая строка не будет работать. Я предполагаю, что это как-то связано с пространствами имен, но я довольно новичок во всем этом, поэтому буду признателен за любые рекомендации. Спасибо!
Оказывается, я могу использовать elementsForLocalName:URI:
правильно читать элемент. Теперь проблема в том, что, поскольку я использую библиотеку TouchXML, не похоже, чтобы этот метод был сопоставлен с CXMLElement
структура (см. здесь).
Итак, вопрос сейчас: как я могу преобразовать CXMLElement
для NSXMLElement
чтобы я мог использовать этот метод?
1 ответ
"itunes" - это идентификатор пространства имен. Сам по себе он не имеет никакого значения, он просто связывает URI с соответствующим элементом. Похоже, вы используете расширения RSS RSS, которые живут под пространством имен 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"]
Для ответа на второй вопрос см. Комментарии ниже.