我有一个HTML文档,我收到它作为String,然后我使用jSoup解析它。
此HTML文档(以字符串形式)包含<link>
标记,如下所示 -
<link rel="stylesheet" href="css/bootstrap.css" />
这就是我解析它的方式 -
Document doc = Jsoup.parse(html);
其中html
是一个字符串形式的HTML文档。
在我打印doc
时进行解析后,除了<link>
标记之外,所有内容都保持不变 -
<link rel="stylesheet" href="css/bootstrap.css">
请注意,此处没有结束斜杠。
另请注意,如果原始字符串包含以下格式的<link>
标记 -
<link rel="stylesheet" href="css/bootstrap.css"></link>
结果仍然相同,即<link rel="stylesheet" href="css/bootstrap.css">
为什么Jsoup这样做以及如何防止这种情况发生?
谢谢!
答案 0 :(得分:4)
根据HTML5 spec on the <link>
element:
在text / html中标记遗漏:
没有结束标记。
因此规范说不应该是结束标记。规范允许end标签为void元素,但它不是默认值。我猜Jsoup遵循HTML规范。
答案 1 :(得分:2)
如果您希望避免修改标签,请尝试以下方法:
Document htmldoc = Jsoup.parse(html, baseuri, Parser.xmlParser());