سؤال

أنا جديد في تطوير 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>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top