2013-10-08 3 views
0

Я разрабатываю приложение, в котором я потребляю ответ SOAP с использованием анализатора TBXML. Но проблема, с которой я сталкиваюсь, заключается в том, что ответ SOAP не подходит в правильном формате XML. Ниже приводится ответ SOAP, что я получаю:iOS Ответ SOAP не в формате XML

<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.or 
/soap/envelope/"><S:Body><ns2:getNotificationCountResponse xmlns:ns2="http://wfnwebservice.oi.com 
/"><return>&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;&lt;Results&gt;&lt;Row&gt;& 
lt;MESSAGE_TYPE&gt;REQAPPRV&lt;/MESSAGE_TYPE&gt;&lt;NOTIFICATION_CNT&gt;2&lt; 
/NOTIFICATION_CNT&gt;&lt;WORKFLOW_NAME&gt;Purchase Requisition&lt;/WORKFLOW_NAME&gt;&lt; 
/Row&gt;&lt;Row&gt;&lt;MESSAGE_TYPE&gt;POAPPRV&lt;/MESSAGE_TYPE&gt;&lt;NOTIFICATION_CNT&gt;4&lt; 
/NOTIFICATION_CNT&gt;&lt;WORKFLOW_NAME&gt;Purchase Order&lt;/WORKFLOW_NAME&gt;&lt;/Row&gt;&lt; 
/Results&gt;</return></ns2:getNotificationCountResponse></S:Body></S:Envelope> 

Сообщение запроса SOAP выглядит следующим образом,

NSString *soapMsg = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\ 
        <S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\" 
xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\ 
        <SOAP-ENV:Header/>\ 
        <S:Body>\ 
        <ns2:getNotificationCount xmlns:ns2=\"http://wfnwebservice.oi.com/\">\ 
        <arg0>CBAKER</arg0>\ 
        </ns2:getNotificationCount>\ 
        </S:Body>\ 
        </S:Envelope>"]; 

Может ли один пожалуйста, дайте мне знать, что это вопрос, и как я могу решить эту проблему ????

ответ

0

// Передайте свой адрес здесь

Используйте NSXml анализатор сначала нужно объявить NSXMLParser делегата в .h. , а затем попробуйте этот код

NSString * urlString = [NSString stringWithFormat:@"http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry?CountryName=%@",CountryName]; 

NSLog(@"%@",urlString); 

NSMutableURLRequest * req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 

NSData * data = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:nil]; 

NSLog(@"%@",data); 

xmlResultString = [[NSMutableString alloc]init]; 

NSLog(@"%@",xmlResultString); 

parser = [[NSXMLParser alloc]initWithData:data]; 
[parser setDelegate:self]; 
[parser parse]; 

    // return result; 

} 

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

    xmlDictionary=[[NSDictionary alloc]init]; 

    [xmlResultString appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]]; 

    NSLog(@"%@",xmlResultString); 

    xmlDictionary = [XMLReader dictionaryForXMLString:xmlResultString error:nil]; 

} 
-(void)parserDidEndDocument:(NSXMLParser *)parser 
{ 

    NSLog(@"%@",xmlDictionary); 

    NSArray * City=[[NSArray alloc]init]; 

    NSString* city =[[[xmlDictionary valueForKey:@"NewDataSet"] valueForKey:@"Table"] valueForKey:@"City"]; 

    NSLog(@"%@",city); 

    City=[[[xmlDictionary valueForKey:@"NewDataSet"] valueForKey:@"Table"] valueForKey:@"City"]; 

    NSLog(@"%@",City); 
} 



-(void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError 
{ 
    result = 0; 
    NSLog(@"%@",parseError); 

} 
+0

благодарит за ваш ответ, но это - наше требование использовать TBXML для синтаксического анализа и сообщения SOAP для запроса ... так что, пожалуйста, дайте мне решение –

Смежные вопросы