Intereting Posts
कंपाइलर को कैसे बताऊँ कि कोई संपत्ति केवल तब तक पहुँचा है जब वह मौजूद है? IOS कुंजीपटल नोटिफिकेशन IOS8.3 पर चेतावनी दृश्य दिखाने पर अनावश्यक रूप से ट्रिगर एप्लिकेशन प्रतिनिधि से UIStoryboard लोड रिक्तियां ऑटोलेआउट में बाधाओं वाले उपकरणों के बीच असंगत है xamarin आईओएस डिजाइनर सुपर व्यू किनारों को बाधित नहीं कर सकता है? स्ट्रिंग को एनएसडीएट को गलत तारीख देते हुए परिवर्तित करना SKVideoNode SCNSphere के लिए बनावट के रूप में IOS 5 में UISegmentedControl कस्टमाइज़ करना UITableView स्वाइप में अतिरिक्त बटन जोड़ें Vimeo जेसन प्रतिक्रिया पार्सिंग सूचकांक तैयार करने के लिए कैसे करेंफोरेगेज जेनकिंस / एसएसएच से एक्स कोड, कोडन त्रुटि – "उपयोगकर्ता इंटरैक्शन की अनुमति नहीं है" स्विफ्ट में पॉप-अप डेट पिक्चरदृश्य के भीतर एक बटन दबाएं? semaphore_wait_trap UI को अवरोधित करना आंशिक स्ट्रिंग xcode से एक फ़ाइल को हटाएं

XMLParser सलाह

मुझे यकीन नहीं है कि मैं क्या कर रहा हूं गलत। मेरे पास एक्सएमएल पेड़ की ओर एक यूआरएल है जो दिखता है:

<result> ... <title> ... </title> <body> ... </body> ... </result> 

मुझे फ़ाइल को पार्स करने और शीर्षक और शरीर प्राप्त करने की आवश्यकता है। यहां मेरा ऑब्जेक्ट है। H:

 #import <Foundation/Foundation.h> @interface Object : NSObject { NSString *title; NSString *description; } @property (nonatomic, retain) NSString *title; @property (nonatomic, retain) NSString *description; @end 

और यहां ऑब्जेक्ट है I

 #import "Object.h" @implementation Object @synthesize title, description; -(void) dealloc { [title release]; [description release]; [super dealloc]; } @end 

यहाँ मेरा XMLParser है।

 #import <Foundation/Foundation.h> #import "Object.h" @interface XMLParser : NSObject <NSXMLParserDelegate> { NSMutableString *currentNodeContent; NSMutableArray *arrayOfObjects; NSXMLParser *parser; Object *currentObject; } @property (readonly, retain) NSMutableArray *arrayOfObjects; -(id) loadXMLbyURL:(NSString *)urlString; @end 

और अंत में, XMLParser.m:

 #import "XMLParser.h" #import "Object.h" @implementation XMLParser @synthesize arrayOfObjects; -(id) loadXMLbyURL:(NSString *)urlString { arrayOfObjects = [[NSMutableArray alloc] init]; NSURL *url = [NSURL URLWithString:urlString]; NSData *data = [[[NSData alloc] initWithContentsOfURL:url] autorelease]; parser = [[NSXMLParser alloc] initWithData:data]; parser.delegate = self; [parser parse]; return self; } -(void) dealloc { [parser release]; [super dealloc]; } -(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if([elementName isEqualToString:@"result"]) { currentObject = [Object alloc]; } } -(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if([elementName isEqualToString:@"title"]) { currentObject.title = currentNodeContent; } if([elementName isEqualToString:@"body"]) { currentObject.description = currentNodeContent; } if([elementName isEqualToString:@"result"]) { [arrayOfObjects addObject:currentObject]; [currentObject release]; currentObject = nil; [currentNodeContent release]; currentNodeContent = nil; } } -(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; } @end 

मेरे मुख्य कोड में मैं XML पार्सर को इस तरह कॉल करता हूं:

 xmlParser = [[XMLParser alloc] loadXMLbyURL:@"www.websiteWithXML.com"]; 

हालांकि मेरे arrayOfObjects में कुछ भी नहीं रखा जा रहा है (मुझे यह पता है क्योंकि जब मैं एक टेबलव्यू को मेरी सरणी के रूप में बहुत सी पंक्तियां बताता हूँ, तो कोई पंक्ति नहीं है)।

कृपया सहायता कीजिए!!! आपका अग्रिम में ही बहुत धन्यवाद!

Solutions Collecting From Web of "XMLParser सलाह"

निश्चित नहीं है कि इससे मदद मिलेगी …

बदलने का प्रयास करें:

 arrayOfObjects = [[NSMutableArray alloc] init]; 

सेवा मेरे:

 arrayOfObjects = [[NSMutableArray alloc] initWithCapacity:0]; 

इसके अलावा ऐसा लगता है कि आपका कोड ठीक है। इसके अलावा, सिर्फ इसलिए कि आपकी तालिका कुछ भी लोड नहीं कर रही है इसका मतलब यह नहीं है कि आपके ऑरेंज में ऑब्जेक्ट नहीं हैं। आपके डाटा को पार्स करने के बाद और अपने टेबलव्यू लोड करने का प्रयास करने से पहले ब्रेकपॉइंट का उपयोग करें।

अपने प्रत्येक तत्व के शुरू होने के भीतर वर्तमान नोडसंयंट को रीसेट करने का प्रयास करें। उदाहरण के लिए:

 -(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if([elementName isEqualToString:@"result"]) { currentObject = [Object alloc]; } else if ([elementName isEqualToString:@"title"] || [elementName isEqualToString:@"body"]) { [currentNodeContent setString:@""]; } } 

तब, जब आप अक्षर प्राप्त करते हैं, तो एक अनुलग्नक करते हैं:

 -(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { [currentNodeContent appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; } 

ऐसा करने से, आप उस परिस्थिति को संभालते हैं जहां एक मिलाए गए तत्वों के भीतर सभी वर्णों को कैप्चर करने के लिए कई बार मिलते हैं।