كيف تحد من التحليل في iPhone؟
-
20-09-2019 - |
سؤال
أنا جديد في تطوير iPhone. أريد تحليل عنوان URL للصورة من ملف XML وعرضه في خلاصة RSS. يوجد عنوان URL لثلاثة صور ، لكنني أريد استرداد عنوان URL واحد فقط وعرضه.
<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>
لتحليلها
- (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"]];
}
}
}.
أرغب في استرداد صورة النمر والبغاء فقط. لكنني أحصل على Tiger مرتين.
المحلول
عندما تبدأ في تحليلك entry
إعادة تعيين العنصر myUrl
متغير إلى لا شيء - لذلك ستقوم بتحليل "الوسائط: Thumbnail" مرة واحدة لكل عنصر "إدخال"
نصائح أخرى
ما عليك سوى الاحتفاظ بعلم في مندوب المحلل الخاص بك الذي تقوم بإعادة التعيين عندما ترى <media:group>
. ثم في كل مرة ترى <media:thumbnail>
لقد حصلت. ثم في كل مرة تحصل عليها <media:thumbnail>
, ، تحقق مما إذا كان قد تم تعيين العلم. إذا لم يكن الأمر كذلك ، فهذه هي الأولى ، لذلك تأخذ البيانات وتعيين العلم. عندما ترى التالي <media:thumbnail>
أنت تتجاهل ذلك لأنه تم تعيين العلم.
في حالتك، myUrl
هو العلم. لذا ببساطة أعد ضبطه على كل ربطة عنق ترى <media:group>
.