使用TouchXML无法在名称中使用冒号获取XML元素

时间:2010-07-08 22:14:22

标签: iphone xml touchxml

我有以下代码:

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

第一行完美无缺。第二行虽然不起作用。我认为它与命名空间有关,但我对所有这些都很新,所以我很感激任何指导。谢谢!


事实证明,我可以使用elementsForLocalName:URI:正确读取元素。现在的问题是,由于我使用的是TouchXML库,因此该方法似乎并未映射到CXMLElement结构(请参阅here)。

现在的问题是:如何将CXMLElement转换为NSXMLElement以便我可以使用该方法?

1 个答案:

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

关于第二个问题的答案,请参阅以下评论。