java - 如何在标签完好无损的情况下解析 html

标签 java html dom html-parsing sax

我正在尝试解析一个 html,例如:

<html>
  <body>
     <header>hello</header>
     <p>
       this is a text<br/>
     </p>
  </body>
</html>

我想提取

<p>
  this is a text<br/>
</p>

我尝试过 Jsoup:

private String parseTicketReply(String content) {
    Document doc = Jsoup.parse(content);
    String replybody = "";

    // zimbra 
    if (doc.select("body").size() > 0) {
        replybody = doc.select("body").get(0).text();
    }

    return replybody;            
}

我没有得到我想要的东西。我得到“这是一条文本”。

我尝试了 SAX perser、neko 等...它们都没有给我正确的结果。有人知道如何以正确的方式做到这一点吗?真的很挣扎。提前致谢...

最佳答案

改变

replybody = doc.select("body").get(0).text();

replybody = doc.select("body").get(0).html();

您可以使用doc.body()代替doc.select("body")

http://jsoup.org/cookbook/introduction/parsing-a-document

The parser will make every attempt to create a clean parse from the HTML you provide, regardless of whether the HTML is well-formed or not.

关于java - 如何在标签完好无损的情况下解析 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18763122/

相关文章:

java - 在聊天应用程序中如何使用 Firebase 实现打字指示器

HTML5 缓存( list )网络部分

javascript - 检查对象是否是文本框 - javascript

php - 如何将数据库记录分布在多个列上?

javascript - html2canvas 屏幕截图一直显示为空白

javascript - 访问 DOM 树中的某个字段

javascript - 将 <link rel ="stylesheet"> 原始内容加载到 &lt;style&gt; 标签中

java - 尽管我生成的查询工作正常,但为什么 JDBC-MySQL 会在 SQL 语法中抛出错误?

java - 如何在包含表格查看器的另一个组合的顶部显示组合?

java - 如何在 Linux 中找到由 Java 进程创建的前 10 个或前几个 CPU 密集型线程?