2

無効な 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を整理していません...

ありがとう!

4

1 に答える 1

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);
于 2010-07-23T04:12:17.450 に答える