Ich bin neu auf iphone development.I bin Parsen einer XML-Seite und die Anzeige der Inhalte in einem tableview.In einigen Block in der XML-Seite, das Kind Element fehlt, möchte ich einen Wert o in meinem Array hinzufügen, wenn das Kind Element nicht in den bestimmten block.My XML-Datei ist wie
<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
Ich analysiere das gd:ratings-Tag und zeige den Wert des Attributs numRates in einer Tabellenansicht an. Ich habe ein veränderbares Array, das den Wert von numRates.I speichert, um Objekt "O" in das Array hinzuzufügen, wenn der zweite Block geparst wird, weil es nicht gd:ratings tag.Since der Wert in einem Attribut-Tag vorhanden ist, für das Abrufen des Inhalts und das Hinzufügen zu dem veränderbaren Array in NSXML-Parser DidStartElement-Methode erfolgt.
- (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];
}
}
Da gibt es 25 Blöcke von Eintrags-Tags und in diesem 10 Block doesnot haben gd Rating-Element. so das Array Stories2 Array hat nur 15 Werte. so kann ich nicht anzeigen, es in der tableview in Ordnung. gibt es irgendeinen Weg aus, um das Attribut Tag in "gefundene Zeichen" Methode abrufen. Bitte helfen Sie mir, danke.