关闭JSoup忽略的<link />标记

时间:2015-04-14 08:33:53

标签: java jsoup

我有一个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这样做以及如何防止这种情况发生?

谢谢!

2 个答案:

答案 0 :(得分:4)

根据HTML5 spec on the <link> element:

  

在text / html中标记遗漏:
  没有结束标记。

因此规范说不应该是结束标记。规范允许end标签为void元素,但它不是默认值。我猜Jsoup遵循HTML规范。

答案 1 :(得分:2)

如果您希望避免修改标签,请尝试以下方法:

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