2017-05-11 1 views
0

ich erhalte xml Art der Antwort vom Server zu analysieren, aber ich bin nicht in der Lage, den Wert von Parsing bekommen Sie nicht, wo ich bin etwas fehlewie XML-Antwort in Ziel c

Dies ist die Probe Antwort war von Server:

<admin> 
<logindetails 
status="cdcdvfbgfhgfgfbff" 
timestamp="1494499694240" isdaylighton="true" 
isupdateavailable="false" updateurl="" user="1" 
userParentID="0">Success</logindetails><admin> 

meine Parsing Methoden:

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
NSLog(@"Element Name :%@",elementName); 

recordResults =NO; 

if ([elementName isEqualToString:@"logindetails"]) { 

    data = [soapResultsString dataUsingEncoding:NSUTF8StringEncoding]; 
    json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
    NSLog(@"json===>%@",array); 
    } 
} 

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 

if(recordResults) 
{ 
    [childElement appendString: string]; 
    NSLog(@"inside%@",string); 

} 

} 

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName 
    attributes: (NSDictionary *)attributeDict 
{ 

xmlparserString=elementName; 
NSLog(@"xmlparserString start -->%@",xmlparserString); 

if([xmlparserString isEqualToString:@"logindetails"]) 
{ 

    recordResults =YES; 
    soapResultsString = [[NSMutableString alloc] init]; 

} 

} 

iam bekommen Alle Tags nennen, aber ich kann die Werte aus der XML-Antwort bitte den Code überprüfen und beantworten

+0

Wenn es als String kommt, können Sie String-Operationen tun, oder Sie können sie in Dictionary konvertieren. In git xml zu dictionary ist ein frame work da. Importieren Sie diesen Rahmen in Ihre Anwendung und konvertieren Sie XML in das Wörterbuch, dann können Sie es als Ihre Anforderung verwenden. – phani

+0

Elemente sind Tags, die Daten sind, was in den Tags enthalten ist .... Es sei denn, Sie haben einige verrückte benutzerdefinierte seltsame XML, das ist nicht, wie dies gehen soll. Unabhängig davon werden Sie Tags in assoziative Modelle einteilen wollen. XML <--> JSON/Hashable Dictionary ist nicht möglich, da XML Strukturen darstellen kann, die JSON nicht darstellen kann. – TheCodingArt

Antwort

2

Die Daten, die Sie suchen sind XML-Attribut und zurückgegeben werden im attributes Wörterbuch in didStartElement bekommen.

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *) elementName 
             namespaceURI:(NSString *) namespaceURI 
             qualifiedName:(NSString *) qName 
             attributes:(NSDictionary *) attributeDict 
{ 

    xmlparserString = elementName; 
    NSLog(@"xmlparserString start -->%@",xmlparserString); 

    if ([xmlparserString isEqualToString:@"logindetails"]) { 

     // soapResultsString = [[NSMutableString alloc] init]; 
     NSLog(@"logindetails attributes --> %@", attributeDict); 

} 

Die JSON Deserialisierung in didEndElement falsch ist und nicht arbeiten können. XML-Attribute sind nicht JSON. Löschen Sie die gesamte if Ausdruck

+0

ok lassen Sie uns Ihren Code versuchen und gehen Sie zurück zu – batMan007

+0

Ich habe dies { isdaylighton = true; isupdateavailable = false; status = "dsfdvvfbfdg"; timestamp = 1494504256966; updateurl = ""; userParentID = 0; userPrivilege = 1; } von diesem wie man einzelne Werte erhält – batMan007

+0

Dies ist ein Standard-Wörterbuch (Schlüssel/Wert-Paare). Zum Beispiel erhalten Sie '1' für' attributeDict [@ "userPrivilege"] ' – vadian