2012-01-08 10 views
0

제품의 하위 집합 목록이 포함 된 간단한 XML 파일이 있습니다. iOS App 번들에서 파일을로드하고 구문 분석기를 통해 initWithNSURL과 함께 보내고 NSURL은 올바르게 구문 분석 한 로컬 파일을 가리 킵니다.NSData와 함께 사용할 때 NSXML 구문 분석 오류가 발생했습니다.

그러나 NSURLConnection을 통해 동일한 파일을 다운로드하고이를 initWithData으로 파서에 전달하면 구문 분석이 실패합니다. NSString *temp = [NSString stringWithUTF8String:[downloadedData bytes]];을 수행하면 출력 된 문자열이 정확하기 때문에 데이터가 올바르게 다운로드되고 있음을 확인할 수 있습니다. 나는 어딘가에 줄을 따라 어떤 생각을 인코딩하는 것으로 언젠가 느낀다.

+0

NSString * xmlData = [[NSString alloc] initWithData : responseData 인코딩 : NSUTF8StringEncoding]; 이것이 내가하는 일이며, 작동 중입니다 – IPaPa

+0

어떻게 파서에 전달하고 있습니까? –

+0

파서 코드 게시 ... – DGund

답변

1

내 친구가 파서 작업을 수행합니다. NSString * xmlData = [[NSString alloc] initWithData : responseData encoding : NSUTF8StringEncoding];

XMLDATA는
ABC 방송과 같아야합니다 내 친구는 문자열을 분석하고 작업

그리고 내가

xmlTextReaderPtr reader = xmlReaderForMemory([data bytes], [data length], NULL, NULL,    (XML_PARSE_NOBLANKS | XML_PARSE_NOCDATA | XML_PARSE_NOERROR | XML_PARSE_NOWARNING)); 

if (reader != NULL) { 
    ret = xmlTextReaderRead(reader); 
    while (ret == 1) { 
     const xmlChar *name, *value; 

     name = xmlTextReaderConstName(reader); 
     if (name == NULL) 
     name = BAD_CAST "--"; 
     NSString *Name = [NSString stringWithCString:(const char*)name encoding:NSUTF8StringEncoding]; 

     value = xmlTextReaderConstValue(reader); 
     if (value == NULL) 
      value = BAD_CAST "\n"; 
     NSString *Value = [NSString stringWithCString:(const char*)value encoding:NSUTF8StringEncoding]; 
     NSLog("%d %d %@ %d %@", 
     xmlTextReaderDepth(reader), 
     xmlTextReaderNodeType(reader), 
     Name, 
     xmlTextReaderIsEmptyElement(reader), 
     Value); 



     ret = xmlTextReaderRead(reader); 
    } 
    xmlFreeTextReader(reader); 
    } 

와 XML을 구문 분석 libxml2를 사용하고 결과가 너무

정확
관련 문제