开发者

How to Using nsxml Parsing in soap response

I want to parse photoids, how can i do this. My soap response is :

2011-08-01 13:14:45.088 SoapSampleApps[1615:207] DONE. Received Bytes: 666
2011-08-01 13:14:45.089 SoapSampleApps[1615:207] <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:GetTopPicIdsResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"><status xsi:type="xsd:boolean">true</status><message xsi:type="xsd:string">Success</message><photoids xsi:type="xsd:string">9,8,20,21,22,23,24,25,26,19</photoids></ns1:GetTopPicIdsResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

And my xmlparse delegate code is:

// NSXMLParsr Delegate---------------------

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    if([elementName isEqualToString:@"SOAP-ENV:Body"]){  
    }   
    [xmlValue setString:@""];

}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    if ([elementName isEqualToString:@"photoids"]) {
        [currentItem setValue:[NSString stringWithS开发者_运维知识库tring:xmlValue] forKey:elementName];
    }

    else if ([elementName isEqualToString:@"SOAP-ENV:Body"]) {
        [xmlParseArray addObject:[NSDictionary dictionaryWithDictionary:currentItem]];

    }   

    NSLog(@"xmlArray is : %@",xmlParseArray);               
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
   [xmlValue appendString:string];
}


Use simple Dictionary object to parse SOAP Response:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    self.startelement = elementName;

}

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
   [dictionary setObject:string forKey:self.startelement];
}

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{   
}

You can get your values from dictionary like

NSString *photoids = [dictionary objectForKey:@"photoids"];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜