Objective c 为什么在创建少于12个字符的NSXMLDocument时忽略NSXMLDocumentTidyHTML?

Objective c 为什么在创建少于12个字符的NSXMLDocument时忽略NSXMLDocumentTidyHTML?,objective-c,cocoa,nsxmldocument,Objective C,Cocoa,Nsxmldocument,我正在使用NSXMLDocument和NSXMLDocumentTidyHTML选项来解析可能“不整洁”的HTML。它在我测试过的每个场景中都运行良好,除非我传递到NSXMLDocument的-initWithXMLString:options:error:中的字符串少于12个字符 为了演示这个问题,在下面两行代码中考虑一个简单的例子: NSXMLDocument *document = [[NSXMLDocument alloc] initWithXMLString:@"<p>He

我正在使用
NSXMLDocument
NSXMLDocumentTidyHTML
选项来解析可能“不整洁”的HTML。它在我测试过的每个场景中都运行良好,除非我传递到
NSXMLDocument
-initWithXMLString:options:error:
中的字符串少于12个字符

为了演示这个问题,在下面两行代码中考虑一个简单的例子:

NSXMLDocument *document = [[NSXMLDocument alloc] initWithXMLString:@"<p>Hello</p>" options:NSXMLDocumentTidyHTML error:NULL];
NSLog(@"%@", [document XMLStringWithOptions:NSXMLNodePrettyPrint]);

我已经用更多的不同长度的字符串和不同的标记测试了这个问题(例如,
123
12
),并且遇到了同样的问题。有没有人对为什么在提供少于12个字符的字符串时无法生成我所期望的HTML有什么建议?

顺便说一句,用空格填充字符串以达到12个字符可以解决这个问题,但我更感兴趣的是为什么会出现这种行为。这是一个疯狂的猜测,因为我最近读了一些关于Unicode的书。。。也许NSXMLDocument正在检查输入以猜测字符编码,寻找字节顺序标记等,但这失败了,当输入少于12个字符时会产生此错误?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <p>Hello</p>
    </body>
</html>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<p>Helo</p>