{
[twitterDic setObject:currentText forKey:currentElementName];//把其他节点放在字典中
}
}
-(void)parserDidEndDocument:(NSXMLParser *)parser//得到的解析结果
{
NSLog(@"%d
%@",[parserObjects
count],[[parserObjects
objectAtIndex:0]
valueForKey:@"title"]);
}
#pragma mark NSXMLParserDelegate end----->
上面这个些方法都是 NSXMLParser 的代理方法,分别扮演着不同的角色
首先是 - (void)parserDidStartDocument:(NSXMLParser *)parser
这个方法是解析的开始的方法,我在这一步做的就是初始化了数组和字典了 ---就是以后
存储数据的容器。
接着就是第一步的解析:
-
(void)parser:(NSXMLParser
*)parser
didStartElement:(NSString
*)elementName
namespaceURI:(NSString*)namespaceURI
qualifiedName:(NSString
*)qName
attributes:
(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"item"]) //找节点进行解析
{
NSMutableDictionary *newNode = [[NSMutableDictionary alloc] initWithCapacity:0];
[parserObjects addObject:newNode];
twitterDic = newNode;
}
else if (twitterDic)
{
if ([elementName isEqualToString:@"enclosure"])
{
//NSLog(@"%@",attributeDict);//存到字典下了
if ([[attributeDict valueForKey:@"url"] hasSuffix:@"jpg"]) //把 encolsuer 下的节点放在字典中
{
[twitterDic setObject:[attributeDict valueForKey:@"url"] forKey:@"image"];
}
else
{
[twitterDic setObject:[attributeDict valueForKey:@"url"] forKey:@"video"];