NSXMLParser如何工作

时间:2011-08-04 05:58:02

标签: iphone xcode nsxmlparser

我是xcode开发的新手。我正在尝试实现一个Web服务调用来从服务器获取值并将其显示在表视图上。我从网上获得了一些示例代码,以及我如何使其工作。但我仍然不知道解析器如何遍历xml节点。  任何人都可以帮我找到xcode解析器在xcode中的工作情况,以及如何在没有for循环的情况下通过所有节点

3 个答案:

答案 0 :(得分:2)

实际上有五种委托方法

1.didstartdocument

2.didstartelement

3.found characters

4.didendelement

5.didenddocument

第一种方法是启动文件。 第二种方法是,如果找到任何起始元素,如果起始元素有数据,它将转到找到的字符。之后再转到didendelement。之后又转到didstartelement.it会反复进行。如果文档结束,则转到didenddocument。

答案 1 :(得分:0)

NSXMLParser从您那里获取数据并解析数据,在解析时它会发送适当的代理以向您提供数据。它有点像基本的XML解析,然后以委托的形式发送数据---所以你不需要从你的结束循环来解析XML。

答案 2 :(得分:0)

这很简单,因为它的正确流程你可以把断点放在它的方法然后检查你将理解的所有参数的值。还有更多细节请考虑这些方法来设置断点

[self parseXMLFileAtURL:path];

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

在didStartElement中检测到您的元素,您在其中将内存分配给要存储值的对象,而在didEndElement中,您具有存储在永久阵列中的值。