wie zu begrenzen in iphone Parsen?
-
20-09-2019 - |
Frage
Ich bin neu auf iPhone Entwicklung will .I eine Bild-URL aus einer XML-Datei analysieren und zeigt sie in einem RSS feed.There sind drei Bild-URL, aber ich möchte nur eine URL abrufen und anzeigen.
<entry>
<id>xxxxx</id>
<title>xxx xxxx xxxx</title>
<content>xxxxxxxxxxx</content>
<media:group>
<media:thumbnail url="http://tiger.jpg"/>
<media:thumbnail url="http://lion.jpg"/>
<media:thumbnail url="http://elephan.jpg"/>
</media:group>
</entry>
<entry>
<id>xxxxx</id>
<title>xxx xxxx xxxx</title>
<content>xxxxxxxxxxx</content>
<media:group>
<media:thumbnail url="http://parrot.jpg"/>
<media:thumbnail url="http://peacock.jpg"/>
<media:thumbnail url="http://sparrow.jpg"/>
</media:group>
</entry>
für das Parsen es
- (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"])
{
if(myUrl==nil){
NSString* myUrl = [NSString stringWithString:[attributeDict objectForKey:@"url"]];
}
}
}.
Ich will nur Tiger abrufen und Papagei image.But i Tiger bekommen twice.Please mir helfen out.Thanks.
Lösung
Wenn Sie beginnen Ihre entry
Element zurückgesetzt myUrl
Variable auf Null Parsen - so werden Sie „Medien: Thumbnail“ parsen einmal für jeden ‚Eintrag‘ Element
Andere Tipps
Halten Sie einfach eine Flagge in Ihrem Parser delegieren, dass Sie zurück, wenn Sie <media:group>
sehen. Dann sehen jedes Mal, wenn ein <media:thumbnail>
Sie erhalten. Dann sind Sie jedes Mal, wenn Sie eine <media:thumbnail>
erhalten, wenn das Flag gesetzt worden ist. Wenn nicht, dann ist dies die erste, so dass Sie die Daten übernehmen und das Flag gesetzt. Wenn Sie das nächste <media:thumbnail>
sehen ignorieren Sie es, weil das Flag gesetzt worden ist.
In Ihrem Fall ist myUrl
die Flagge. So einfach zurückgesetzt es jede Bindung, die Sie die <media:group>
sehen null.