繁体   English   中英

如何在soap响应中使用nsxml解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM