将html表和div转换为java中的换行符

时间:2013-06-01 05:02:02

标签: java

鉴于有一大块HTML可以很好地显示数据,我如何删除所有的html标签并附加最初包含在td中的文本,div用Java中的换行符?

基本上,这是尝试将html转换为常规常规文本。

3 个答案:

答案 0 :(得分:1)

您可以使用jsoup

  

jsoup是一个用于处理真实HTML的Java库。它提供   一个非常方便的API,用于提取和操作数据,使用   最好的DOM,CSS和类似jquery的方法。

Jsoup.parse(htmltext).text();

你可以在Jsoup中找到各种方法

答案 1 :(得分:1)

我在考虑这样的事情......

// input an HTML page
String htmlPage = "<html><body>Hello,</br>World</body></html>";

// convert <br>,<hr>, and <hX> to new-line
String temp = htmlPage.replaceAll("(< *br *>< *br */>|< *br *>|< *br */>|< *hr[^>]*>|< *h[1-6][^>]*/>)","\n");

// remove all tags
String text = temp.replaceAll("<[^>]>","");

System.out.println(text);

应打印

Hello,
World

您可以对此进行更多调整,例如,您可以使用<body>替换<div>\n----------------\n来定义某些结构。

考虑以下输入

<html>
  <head>
    <title>Title</title>
    <script>alert("this is a test");</script>
    <style>p{ font-family: "Times New Roman"; }</style>
  </head>
  <body>
    <h1>Test</h1>
    <div><p>This is the first line<br/>This is the second line</p></div>
  </body>
</html>

代码

// convert <br>,<hr>, and <hX> to new-line
String temp = htmlPage.replaceAll("(< *br *>< *br */>|< *br *>|< *br */>|< *hr[^>]*>|< *h[1-6][^>]*/>)","\n");

// seperate HTML structures
temp = temp.replaceAll("(< *head *>|</? *body *>)","\n================\n");

// seperate HTML structures
temp = temp.replaceAll("(< *div *>|< *script *>|< *style *>)","\n----------------\n");

// get rid of empty lines
temp = temp.replaceAll("\n *\n","");

// remove all tags
String text = temp.replaceAll("<[^>]>","");

System.out.println(text);

应打印

================
Title
----------------
alert("this is a test");
----------------
p{ font-family: "Times New Roman"; }
================
Test
----------------
This is the first line
This is the second line
================

答案 2 :(得分:0)

你应该使用[jsoup] [1]。使用此工具可以轻松解析HTML页面。

您可以获取HTML文档,并可以遍历此处提到的元素:

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");

入门指南简单易学,可以实现您的目标。