2011-08-01 12 views
0

どうすればいいのですか?私の石鹸応答は次のとおりです。nsxmlのSOAPレスポンスでの解析方法

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デリゲートコードがある:あなたが好きな辞書からあなたの価値を得ることができます

-(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 
{ 
} 

// 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]; 
} 

答えて

2

使用簡単な辞書オブジェクトは、SOAP応答を解析します

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

私を育てる: – pinku

関連する問題