2011-09-03 3 views
1

"&"문자로 인해 NSXML 구문 분석이 작동하지 않습니다. 아래 코드는 .any 도움말입니다. 여기"&"(앰퍼샌드) 문자가있는 NSXMLParser 문제

NSString *str = [[NSString alloc] initWithData:downloadedData encoding:NSASCIIStringEncoding]; 
NSString *contentString = [str stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; 
NSData * data=[contentString dataUsingEncoding:NSUTF8StringEncoding]; 
+0

"&"를 "&"으로 바꿀 때 작동합니까? –

+0

아니, 그럴 수 없어 it.can 당신이 내 코드를 변경할 생각 ... 난 내 코드에서 대체되어야하는 문자열을 어떻게 해야할지 모르겠다 .. – PJR

+0

당신의 clientDetailXml.xml 파일을 수정하고 & '와' –

답변

8

NSString *str = [[NSString alloc] initWithData:downloadedData encoding:NSASCIIStringEncoding]; 
//NSString *contentString = [str stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; 
NSData * data=[str dataUsingEncoding:NSUTF8StringEncoding]; 

가 교체 된 심볼 '&'와 함께, 응답 것 교체 한 경우

NSString *response = [[NSString alloc]initWithData:dataResponse encoding:NSUTF8StringEncoding]; 
NSString *newResponse = [response stringByReplacingOccurrencesOfString:@"&amp:" withString:@"AND"]; 
NSData *dataObj = [newResponse dataUsingEncoding:NSUTF8StringEncoding]; 

옳다. 그러나 그것은 맞을 것이다. 행 구문 분석 오류 : 68. 그래서 '와'를 사용해야했습니다.

0

나를 위해 일한 내용은 다음과 같습니다 :

NSString *myRequestString = [NSString stringWithFormat:@"http://abc.com/def/webservices/aa.php?family_id=%d",self.passFamilyId]; 
//NSLog(@"Requested Service = %@",myRequestString); 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myRequestString]]; 
[request setHTTPMethod: @"POST" ]; 
NSData *downloadedData = [ NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSString *str = [[NSString alloc] initWithData:downloadedData encoding:NSASCIIStringEncoding]; 
//NSString *contentString = [str stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; 
NSData * data=[str dataUsingEncoding:NSUTF8StringEncoding]; 


//NSLog (@"string is :%@" ,str);  

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data]; 

// Call the XMLParsers's initXMLParse method. 
ClientDetailXmlParser *parser = (ClientDetailXmlParser*)[[ClientDetailXmlParser alloc] initXMLParser]; 
[xmlParser setDelegate:parser]; 
BOOL success = [xmlParser parse]; 

// Check for XML parsing. 
if(success) 
{ 
    NSLog(@"No Errors in clientDetailXml.xml");  
} 
else 
{ 
    NSLog(@"Error Error Error in clientDetailXml.xml!!!"); 
} 

[parser release]; 
parser = nil; 

if (objClientAddUpdate != nil) { 
    [objClientAddUpdate createBubbleList]; 
}