我有以下代码:
NSString *subtitle = [[[node elementsForName:@"subtitle"] objectAtIndex:0] stringValue];
NSString *duration = [[[node elementsForName:@"itunes:duration"] objectAtIndex:0] stringValue];
第一行完美无缺。第二行虽然不起作用。我认为它与命名空间有关,但我对所有这些都很新,所以我很感激任何指导。谢谢!
事实证明,我可以使用elementsForLocalName:URI:
正确读取元素。现在的问题是,由于我使用的是TouchXML库,因此该方法似乎并未映射到CXMLElement
结构(请参阅here)。
现在的问题是:如何将CXMLElement
转换为NSXMLElement
以便我可以使用该方法?
答案 0 :(得分:2)
“itunes”是命名空间标识符。它实际上没有任何意义,它只是将URI与所讨论的元素链接起来。看起来您正在使用iTunes 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"]
关于第二个问题的答案,请参阅以下评论。