我的要求是解析一个xml文件并在ipad中显示它。但我完全混淆了如何解析这个xml文件,我是xml解析的新手。请帮助我如何为它创建阵列以及如何在ipad中显示。它是一本杂志新闻应用程序,任何源代码或示例应用程序都可以帮助我。
答案 0 :(得分:2)
iOS中有一个内置的XML解析类,名为NSXMLParser
。作为init
参数,它需要NSData
,这通常是您从Web服务获取的数据。将自己指定为其委托并调用[parser parse]
,它将在遇到元素,完成元素等时调用您的委托。请参阅parser及其delegate protocol的文档。< / p>
如果您可以控制XML的结构,我发现它的结构更容易:
<Element attr1='value1' attr2='value2' />
而不是:
<Element>
<attr1>value1</attr1>
<attr2>value2</attr2>
</Element>
原因是它找到元素时的回调是:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
其中attributes
是值的字典,因此在上面的示例中,[attributes objectForKey:@"attr1"]
如果以第一种方式构造,则会为您提供“value1”。如果这是第二种方式,你最终会做很多状态管理,这有点痛苦,特别是如果你在元素中有元素等等。
除NSXMLParser
之外,还有开源解析器,它们可以自己完成所有工作,也可以包装内置解析器。之前我已经为它编写了自己的包装器。有关该主题的帖子,请参阅here(感谢this question链接)。