【问题标题】:Closing <link> tag ignored by JSoupJSoup 忽略了关闭 <link> 标记
【发布时间】:2015-04-14 08:33:53
【问题描述】:

我有一个作为字符串接收的 HTML 文档,然后我使用 jSoup 对其进行解析。 该 HTML 文档(字符串形式)包含 &lt;link&gt; 标签如下 -

<link rel="stylesheet" href="css/bootstrap.css" />

这就是我解析它的方式-

Document doc = Jsoup.parse(html);

其中html 是一个字符串形式的 HTML 文档。

在我打印doc 时解析后,除了&lt;link&gt; 标记更改为-

  <link rel="stylesheet" href="css/bootstrap.css"> 

请注意这里没有结束斜线。 另请注意,如果原始字符串包含以下形式的&lt;link&gt;标签-

<link rel="stylesheet" href="css/bootstrap.css"></link>

结果还是一样,即&lt;link rel="stylesheet" href="css/bootstrap.css"&gt; Jsoup 为什么要这样做,我该如何防止这种情况发生?

谢谢!

【问题讨论】:

  • 它实际上是在改变链接的href,还是你只是指缺少的/
  • @jurgemaister 对不起。我在复制数据时出错。我已经编辑了我的问题。

标签: java jsoup


【解决方案1】:

根据HTML5 spec on the &lt;link&gt; element:

文本/html中的标记省略:
没有结束标签。

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

【讨论】:

    【解决方案2】:

    如果你想避免修改标签,试试这个:

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

    【讨论】:

      猜你喜欢
      • 2013-03-15
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2016-10-16
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多