我正在使用NSXMLDocument
选项NSXMLDocumentTidyHTML
来解析可能“不整洁”的 HTML。它在我测试过的每个场景中都运行良好,除非我传递给NSXMLDocument
's的字符串-initWithXMLString:options:error:
少于 12 个字符。
为了演示这个问题,请考虑以下两行代码中的一个简单示例:
NSXMLDocument *document = [[NSXMLDocument alloc] initWithXMLString:@"<p>Hello</p>" options:NSXMLDocumentTidyHTML error:NULL];
NSLog(@"%@", [document XMLStringWithOptions:NSXMLNodePrettyPrint]);
这会将以下内容打印到控制台:
<?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>
<p>Hello</p>
传入的整个字符串是 12 个字符(
但是,从该字符串中删除一个字符(<p>Helo</p>
例如 ),输出会发生巨大变化,就好像NSXMLDocumentTidyHTML
没有指定为选项一样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<p>Helo</p>
我已经用更多不同长度和不同标签的字符串(例如<tr>123</tr>
vs. <tr>12</tr>
)对此进行了测试,并且遇到了同样的问题。有没有人对为什么在提供少于 12 个字符的字符串时无法生成我期望的 HTML 有任何建议?