Ipad XML解析疑惑

时间:2011-07-14 04:35:42

标签: ipad

我的要求是解析一个xml文件并在ipad中显示它。但我完全混淆了如何解析这个xml文件,我是xml解析的新手。请帮助我如何为它创建阵列以及如何在ipad中显示。它是一本杂志新闻应用程序,任何源代码或示例应用程序都可以帮助我。

1 个答案:

答案 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链接)。