TouchXML - 无效的XML不会返回错误对象

时间:2010-07-21 06:36:42

标签: iphone libxml2 touchxml

说我的XML无效。出于某种原因,TouchXML仍然将其视为有效对象。

例如:

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 ......

谢谢!

1 个答案:

答案 0 :(得分:0)

找到解决这个问题的方法。内部

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

出于我的目的,我改变了

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

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