我是 iphone 开发新手。我正在解析 XML 页面并在 tableview 中显示内容。在 XML 页面的某个块中,子元素丢失,我想在我的数组中添加一个值 o,当子元素不喜欢特定的块。我的 XML 文件就像
<entry>
<id>xxx </id>
<title>xxxxx</title>
<gd:ratings numRaters="2"/>
</entry> ..................................>first block
<entry>
<id>xxx </id>
<title>xxxxx</title>
</entry> ....................................>Second block
<entry>
<id>xxx </id>
<title>xxxxx</title>
<gd:ratings numRaters="2"/>
</entry> .....................................>Third block
我正在解析 gd:ratings 标记并在表格视图中显示其属性 numRates 值。我有一个可变数组,它存储 numRates 的值。当解析第二个块时,我必须在数组中添加对象“O”,因为它不包含 gd:ratings 标记。由于该值存在于属性标记中,因此检索内容并将其添加到可变数组中是在 NSXML 解析器 DidStartElement 方法中完成的。
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
currentElement = [elementName copy];
if ([elementName isEqualToString:@"entry"]) {
entry = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [[NSMutableString alloc] init];
NSLog(@"inside image1 ");
}else if([elementName isEqualToString:@"media:thumbnail"])
{ currentImage = [[NSMutableString alloc] init];
if(myUrl == nil){
myUrl = [NSString stringWithString:[attributeDict objectForKey:@"url"]];
}
[currentImage appendString:myUrl];
[stories1 addObject:currentImage];
myUrl=nil;
} else if([elementName isEqualToString:@"gd:rating"])
{
currentRating=[[NSMutableString alloc]init];
myRatings=[NSString stringWithString:[attributeDict objectForKey:@"numRaters"]];
[currentRating appendString:myRatings];
[stories2 addObject:currentRating];
}
}
由于有 25 个条目标签块,并且在这 10 个块中没有 gd 评级元素。所以数组 stories2 数组只有 15 个值。所以我无法在 tableview 中按顺序显示它。有没有办法检索属性标签在“找到字符”方法中。请帮帮我。谢谢。