关闭 <link> 标记被 JSoup 忽略

Closing <link> tag ignored by JSoup

我有一个 HTML 文档,我收到它作为字符串,然后我使用 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 这样做,我该如何防止这种情况发生?

谢谢!

根据 HTML5 spec on the <link> element:

Tag omission in text/html:
No end tag.

所以规范说不应该有结束标记。该规范允许结束标记使元素无效,但这不是默认设置。我猜 Jsoup 遵循 HTML 规范。

如果您希望避免修改标签,试试这个:

Document htmldoc = Jsoup.parse(html, baseuri, Parser.xmlParser());