[英]How to Using nsxml Parsing in soap response
我想解析photoids,我该怎么做呢。 我的肥皂回应是:
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>
我的xmlparse委托代码是:
// 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 stringWithString: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];
}
使用简单的Dictionary对象来解析SOAP响应:
-(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
{
}
您可以从字典中获取您的值
NSString *photoids = [dictionary objectForKey:@"photoids"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.