1

我有以下代码:

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

第一行完美运行。第二行虽然行不通。我认为它与命名空间有关,但我对这一切都很陌生,所以我将不胜感激任何指导。谢谢!


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

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

4

1 回答 1

2

“itunes”是命名空间标识符。它本身实际上没有任何意义,它只是将一个 URI 与相关元素链接起来。看起来您正在使用位于 namespace 下的 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"]

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

于 2010-07-09T00:05:11.350 回答