为什么Jsoup在解析时会移动HTML元素?

时间:2015-03-26 06:13:39

标签: java html jsoup

以下是我的示例输入HTML代码:

<html>
<head>
<object></object>
</head>
<body>
</body>
</html>

下面是使用Jsoup解析时的输出:

<html>
 <head> 
 </head>
 <body>
  <object></object>    
 </body>
</html>

问题:为什么Jsoup将<object>标记从<head>移到<body>

1 个答案:

答案 0 :(得分:3)

这是正确的行为,因为<object> 必须出现在正文中。

  

HTML标记

     

[...]

     

提示和注释

     

注意:元素必须出现在元素中。和之间的文本是替代文本   不支持此标记的浏览器。

http://www.w3schools.com/tags/tag_object.asp


如果您想要头部内的对象,则可以改为使用XmlParser

    final String html = "<html>\n"
            + "<head>\n"
            + "<object></object>\n"
            + "</head>\n"
            + "<body>\n"
            + "</body>\n"
            + "</html>";

    Document doc = Jsoup.parse(html, "", Parser.xmlParser());
    //                                   |<-------------->|