如何在Jsoup解析中避免围绕HTML Head标签

肉山

我使用Jsoup尝试解析给定的html内容。在Jsoup.parse()之后,html输出将html,head和body标签附加到输入中。我只想忽略这些。

输入样例:

<p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>

Java代码:

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class HTMLParse {

    public static void main(String args[]) throws IOException {
        try{
            File input = new File("/ab.html");
            String html = FileUtils.readFileToString(input, null);

            Document doc = Jsoup.parseBodyFragment(html);
            doc.outputSettings().prettyPrint(false);
            System.out.println(doc.html());
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
}

实际输出:

<html><head></head><body><p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>
    </body></html>

预期产量:

<p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>

请帮忙。

原因:

parseBodyFragment()以及所有其他的parse()-方法使用的HTML解析器默认而那些加的HTML壳牌(<html>…</html><head>…</head>等等)。

解决方案:

只是不要使用HTML解析器,而应使用XML解析器;-)

Document doc = Jsoup.parse(html, "", Parser.xmlParser());

替换该单行,您的问题就解决了。

例:

final String html = "<p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>";

Document docHtml = Jsoup.parse(html);
Document docXml = Jsoup.parse(html, "", Parser.xmlParser());

System.out.println("******* HTML *******\n" + docHtml);
System.out.println();
System.out.println("*******  XML *******\n" + docXml);

输出:

******* HTML *******
<html>
 <head></head>
 <body>
  <p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>
 </body>
</html>

*******  XML *******
<p><b>This <i>is</i></b> <i>my sentence</i> of text.</p>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NodeJS - 读取 HTML Head 标签

来自分类Dev

joomla的Head标签中的Javascript

来自分类Dev

如何删除html标签和head标签之间的iframe标签?

来自分类Dev

删除TinyMCE中的html,head,body标签

来自分类Dev

杂散开始标签html和head

来自分类Dev

<audio>标签应该放在<head>标签中吗?

来自分类Dev

为什么noscript移到body标签而不是head标签中

来自分类Dev

为什么noscript移到body标签而不是head标签中

来自分类Dev

如何在 iframe 的 head 标签中附加元素?

来自分类Dev

如何在head标签内注册jQuery资产?

来自分类Dev

AngularJS如何从ng-view的模板中插入head标签

来自分类Dev

AngularJS如何从ng-view的模板中插入head标签

来自分类Dev

HTML可以包含两个HEAD标签吗

来自分类Dev

如果有评论,则省略html,body,head标签

来自分类Dev

如何使我的javascript函数在head标签内工作?

来自分类Dev

在head标签中动态添加<link rel =“ canonical”

来自分类Dev

放在head标签中的jQuery代码不起作用

来自分类Dev

在head标签中包含css文件,而无需外部库

来自分类Dev

访问内容页面中的 head 标签 (ASP.NET MVC)

来自分类Dev

阅读HTML,如何使用BufferedReader跳过网页中的HEAD标签信息,逐行阅读HTML?

来自分类Dev

如何根据正在使用的IOS设备在head标签中使用不同的<link>标签?

来自分类Dev

我如何在head标签header.php中动态编写文本

来自分类Dev

如何在Python中解析RSS feed中的HTML标签

来自分类Dev

如何在Android中使用Jsoup解析ul li标签

来自分类Dev

JSoup解析标签中的数据

来自分类Dev

如何在JS Fiddle中将自定义属性添加到head标签?

来自分类Dev

我如何在我的wordpress主题head标签中加载CSS文件

来自分类Dev

我们如何将样式表放在目标c的head标签中

来自分类Dev

如何将 HEAD 签出到 libgit2 中的指定引用或标签?

Related 相关文章

  1. 1

    NodeJS - 读取 HTML Head 标签

  2. 2

    joomla的Head标签中的Javascript

  3. 3

    如何删除html标签和head标签之间的iframe标签?

  4. 4

    删除TinyMCE中的html,head,body标签

  5. 5

    杂散开始标签html和head

  6. 6

    <audio>标签应该放在<head>标签中吗?

  7. 7

    为什么noscript移到body标签而不是head标签中

  8. 8

    为什么noscript移到body标签而不是head标签中

  9. 9

    如何在 iframe 的 head 标签中附加元素?

  10. 10

    如何在head标签内注册jQuery资产?

  11. 11

    AngularJS如何从ng-view的模板中插入head标签

  12. 12

    AngularJS如何从ng-view的模板中插入head标签

  13. 13

    HTML可以包含两个HEAD标签吗

  14. 14

    如果有评论,则省略html,body,head标签

  15. 15

    如何使我的javascript函数在head标签内工作?

  16. 16

    在head标签中动态添加<link rel =“ canonical”

  17. 17

    放在head标签中的jQuery代码不起作用

  18. 18

    在head标签中包含css文件,而无需外部库

  19. 19

    访问内容页面中的 head 标签 (ASP.NET MVC)

  20. 20

    阅读HTML,如何使用BufferedReader跳过网页中的HEAD标签信息,逐行阅读HTML?

  21. 21

    如何根据正在使用的IOS设备在head标签中使用不同的<link>标签?

  22. 22

    我如何在head标签header.php中动态编写文本

  23. 23

    如何在Python中解析RSS feed中的HTML标签

  24. 24

    如何在Android中使用Jsoup解析ul li标签

  25. 25

    JSoup解析标签中的数据

  26. 26

    如何在JS Fiddle中将自定义属性添加到head标签?

  27. 27

    我如何在我的wordpress主题head标签中加载CSS文件

  28. 28

    我们如何将样式表放在目标c的head标签中

  29. 29

    如何将 HEAD 签出到 libgit2 中的指定引用或标签?

热门标签

归档