如何在iphone编程中使用nsxmlparser与多个节点的相同名称解析xml?
如何可以解析使用的NSXMLParser,如果我需要的所有影像,如何在iphone编程中使用nsxmlparser与多个节点的相同名称解析xml?
<title>Title</title>
<description>my description is here </description>
<images>
<image>http://www.sosmoths.com/mothImages/800px-Tineola.bisselliella.7218.jpg</image>
<image>http://www.sosmoths.com/mothImages/800px-Tineola.bisselliella.mounted.jpg</image>
<image>http://www.sosmoths.com/mothImages/800px-XN_Tineola_bisselliella_1.jpg</image>
<image>http://www.sosmoths.com/mothImages/Tineola_bisselliella.JPG</image>
</images>
有更多的节点标题,说明,所以如何分析这种XML,我感到困惑的图像节点,我想使用NSMutableArray为此,但仍不清楚做代码?
use this it work
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
NSLog(@"%@",elementName);
if([elementName isEqualToString:@"moths"]){
mytblarray=[[NSMutableArray alloc] init];
} else if([elementName isEqualToString:@"moth"]){
tmpdic=[[NSMutableDictionary alloc] init];
}
else if([elementName isEqualToString:@"images"]){
imgArray=[[NSMutableArray alloc] init];
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if(tmpstr!=nil && [tmpstr retainCount]>0){ [tmpstr release]; tmpstr=nil; }
tmpstr=[[NSString alloc] initWithString:string];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if([elementName isEqualToString:@"moth"]){
[mytblarray addObject:tmpdic];
[tmpdic release];
}if([elementName isEqualToString:@"images"]){
[tmpdic setValue:imgArray forKey:elementName];
}
else if([elementName isEqualToString:@"image"]){
[imgArray addObject:tmpstr];
}
}
Thanx Ron,我今晚会申请,并提出并接受答案,如果它能为我工作 –
我已经接受了答案,但还有一个问题,有每个标题,我必须将数据保存在各自的控制器中,所以如何在四个不同的对象中保存4个蛾的数据 –
如果你想在字典中保存四个月的数据到不同的目标中ü根据当前时间之后的旧图像生成动态的关键像 – Ron
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:"<image>"])
{
[imagearray addObject:imageurl];
}
}
在此之前,你需要找到的元素名称,然后做上述代码。此可以帮助你。
但在哪里初始化图像数组? –
你可以在initWithData:method.Means中传递请求。 –
- 取词典中initWithData:梅索德
- 取的值作为像标题密钥,描述
在didStartElement方法 - ,在图像标签的alloc image_array
- 在didEndElement方法中,在图像标签添加您的数据(在这里您的图像链接)image_array
- 现在在didEndElement方法,在图像标记广告d数组到主字典作为关键图像
这一切.....
请提供完整的URL – Ron
http://sosmoths.com/.xml/moths.xml –
这是XML ROM,现在我可以做什么,我想使用NSXMLParser,而不是touchXML或任何其他@Ron –