2016-07-12 12 views
-2

Als Neu in der iOS-Entwicklung in Xcode 7. Unten habe ich einige Fragen, bitte klären Sie meine Zweifel.Ich habe die XML-Daten, jetzt, wie kann ich die XML-Daten in Objective C speichern?

  1. Ich brauche die XML-Daten aus einem URL-Daten
  2. und Split die XML jede Zeile zu speichern und speichern sie in der Objective C.

    <?xml version="1.0" encoding="UTF-8"?> <NewDataSet> <tbl> <Es_Id>8e268283-e87e-4abc-aab9-07cb611a8e60</Es_Id> <EstablishmentType>40640054-2221-4086-92e4-4440497ccea2</EstablishmentType> <EstablishmentName>La Parrilla Colombian Steakhouse &amp; Bar</EstablishmentName> <BusinessName>La Parrilla Colombian Steakhouse &amp; Bar</BusinessName> <OpenTime>PT8H31M</OpenTime> <ClosingTime>PT18H50M</ClosingTime> <Floor>12 th floor</Floor> </tbl> </NewDataSet>

+0

Was bist du loo König genau? Stellen Sie die XML-Datenstruktur und den von Ihnen geschriebenen Code bereit. –

+0

@DipenPanchasara Das sind meine XML-Daten Sir ...Ich brauche diese XML-Daten zu speichern, in objektiv-C 8e268283-e87e-4abc-aab9-07cb611a8e60 40640054-2221-4086-92e4-4440497ccea2 La Parrilla kolumbianische Steakhouse & Bar La Parrilla kolumbianische Steakhouse & Bar PT8H31M PT18H50M 12. Stock

+0

Setzen Sie es in Ihre Frage mit dem richtigen Format, so kann man leicht unterschreiten. –

Antwort

0

Wenn ich anfangen Lernen XML-Parsing hat grundlegende Schritte. Ich implementiere alles für Sie.

In ViewController.h

Schritt 1:

First you have to add <NSXMLParserDelegate> 

Schritt 2 die Delegierten Klassen hinzufügen: Erstellen notwendigen Objekte

NSXMLParser *parser; 
NSMutableData *ReceviedData; 
NSMutableString *currentStringValue; 
NSMutableArray *arrayID; 

Jetzt sieht es aus wie

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController<NSXMLParserDelegate> 
{ 
    NSXMLParser *parser; 
    NSMutableData *ReceviedData; 
    NSMutableString *currentStringValue; 
    NSMutableArray *arrayID; 
} 
@end 

Dann in ViewController.m

Schritt 3 - Ordnen Sie Ihre Array in Ihrem viewDidLoad Methode

arrayID = [[NSMutableArray alloc]init]; 

Schritt 4 - Verbindung erstellen in Ihrem viewDidLoad Wie

[self createConnection:@"http://www.google.com"]; //give your valid url. 

Jetzt ist die viewDidLoad-Methode

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    arrayID = [[NSMutableArray alloc]init]; 
    [self createConnection:@"http://www.google.com"]; //give your valid url. 
}  

Create Verfahren ist

-(void)createConnection:(NSString *)urlString 
{ 
    NSURL *url = [NSURL URLWithString:urlString]; 

    // Step 5 - parser delegate methods are using NSURLConnectionDelegate class or not. 
    BOOL success; 
    if (!parser) 
    { 
     parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
     parser.delegate = self; 
     parser.shouldResolveExternalEntities = YES; 
     success = [parser parse]; 
     NSLog(@"Success : %c",success); 
    } 
} 

STEP 6 - NSXMLParserDlegate Methoden sind unter

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    NSLog(@"Current Element Name : %@",elementName); 
    if ([elementName isEqualToString:@"ID"]) //according to your xml response your id is Es_Id.So you need to compare @"Es_Id" 
    { 
     NSLog(@"The Result is==%@",elementName); 
    } 
} 

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    currentStringValue = [[NSMutableString alloc] initWithString:string]; 
    NSLog(@"Current String Value : %@",currentStringValue); 
} 

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if ([elementName isEqualToString:@"ID"]) //according to your xml response your id is Es_Id.So you need to compare @"Es_Id" 
    { 
     [arrayResult addObject:currentStringValue]; 
    } 
     currentStringValue = nil; 
} 

von oben Code prüfe ich ID only.According zu Ihrer Antwort müssen Sie andere Tasten vergleichen wie EstablishmentType, EstablishmentName, BusinessName, OpenTime .......

+0

Danke, es kann mir irgendwie helfen .. –

Verwandte Themen