2010-07-21 4 views
2

잘못된 XML이 있다고 해봅시다. 어떤 이유로 TouchXML은 여전히 ​​그것을 유효한 객체로 간주합니다. 예를 들어TouchXML - 잘못된 XML이 오류 개체를 반환하지 않습니다.

:

NSString *str = @"?> obviously invalid!"; 
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding]; 
NSError *parseError = nil; 
CXMLDocument *document = [[[CXMLDocument alloc] initWithData:data encoding:NSASCIIStringEncoding options:0 error:&parseError] autorelease]; 
NSLog(@"Error %i......%@", [parseError code], [parseError localizedFailureReason]); 
NSLog(@"Document ......%@", [document description]); 

출력은 : 왜 이런 일

Error 0......(null) 
    Document ......<CXMLDocument 0x6f05710 [0x6f274c0]> <?xml version="1.0" encoding="us-ascii"?> 

는 사람은 알고 있나요? 나는 XML을 정리하지 않고있다 ...

고마워!

답변

0

이 방법을 발견했습니다. 내 목적을 위해

- (id)initWithData:(NSData *)inData encoding:(NSStringEncoding)encoding options:(NSUInteger)inOptions error:(NSError **)outError 

내부, 나는

theDoc = xmlReadMemory([inData bytes], [inData length], NULL, enc, XML_PARSE_DTDVALID | XML_PARSE_NOWARNING); 

theDoc = xmlReadMemory([inData bytes], [inData length], NULL, enc, XML_PARSE_RECOVER | XML_PARSE_NOWARNING); 

변경