2010-06-03 7 views
1

로컬 경로에서 일부 XML 데이터를 가져 와서 구문 분석하려고하지만 다음 코드를 사용할 때 NSLog가 (내용) XML 파일과 다른 텍스트를 반환합니다. 정확한 XML 데이터를 어떻게 확인할 수 있습니까? 올바른 XML 데이터 또는 아닙니다? 어떤 도움을 주시겠습니까? 내가 구문 분석 할 때 아무것도 반환하지 않습니다 .i 파일을 .xml로 저장하고 로컬 리소스 폴더에 복사 했습니까?NSData를 통해 로컬 XML 파일을 인쇄 하시겠습니까?

NSString *xmlFilePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"samp.xml"]; 
NSString *xmlFileContents = [NSString stringWithContentsOfFile:xmlFilePath]; 

NSData *data = [NSData dataWithBytes:[xmlFileContents UTF8String] length:[xmlFileContents lengthOfBytesUsingEncoding: NSUTF8StringEncoding]];     
NSString *content=[[NSString alloc] 
        initWithBytes:[data bytes] 
        length:[data length] 
        encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",content); 

답변

1

이것은 거의 확실하게 인코딩 문제입니다. NSData 개체를 만들기 전에 XML 파일이 UTF8인지 확인하거나 UTF8로 변환하십시오. 완료되면 다음 코드는 입력과 동일한 출력을 생성합니다.

NSString *open = [NSString stringWithContentsOfFile: [@"~/Desktop/note" stringByExpandingTildeInPath] encoding: NSUTF8StringEncoding error: NULL]; 
NSData *data = [NSData dataWithBytes: [open UTF8String] length: [open lengthOfBytesUsingEncoding: NSUTF8StringEncoding]]; 
NSString *save = [NSString stringWithUTF8String: [data bytes]]; 
[save writeToFile: [@"~/Desktop/note2" stringByExpandingTildeInPath] atomically: NO encoding: NSUTF8StringEncoding error: NULL]; 

당신은 아마 당신이 모든 자신을 구문 분석하고 싶지 않는 한 NSXML 클래스 중 하나를 사용하는 것이 좋습니다.

관련 문제