- (void)parserDidEndDocument:(NSXMLParser *)parser;
这是终点,在这里处理数据
3、
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
开始读区节点,一个<></>这种标示对就是一个节点
这个方法是开始获取一个节点的内容,
参数parser是携带需解码xml二进制数据的委托者
参数elementName是当前解析xml的某个节点的键(键值对中的键)
参数namespaceURI和qName返回的是当前xml所在的域名+路径
参数attributeDict返回的是当前节点的属性,写在第一个<>里的内容
4、
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
这个方法是被循环调用的,作用是返回每一个节点的内容(键值对中的值)
5、
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
这个方法是终点方法,此时,代理类中定义的资源成员已经被解析完毕,直接操作即可
6、
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
解析出错,清理所有得到的解析结果
问题1:
如何知道在代理中定义什么成员变量?
一半取出的数据如果是有规律的多个数据,代理中一般定义数组成员变量,这个数组成员变量中存放的是每一个大键的模型,(我们需要把xml中的每一个大键变成一个对象,每一个小键变成一个大键对象的成员属性,这样就分析出来我们需要什么定义的成员变量是什么了)
_elementstr成员变量的作用是暂存当前节点标签的字串值