从HTML String Java中提取文本

时间:2015-10-18 11:52:56

标签: java html string jsoup

我有一串带有标签和特殊字符的HTML代码,例如:

 <p class="MsoNormal"><span style="font-size: 14pt; font-family: TimesNewRoman;"> I Just want this Text here?<o:p></o:p></span></p>

<div>This is more text i would like. :( </div><div> </div>

我只是想知道是否有任何方法可以从html字符串中提取文本。我曾尝试使用一些正则表达式来替换字符串,但它似乎不像海湾方式那样做。还尝试了JSoup,但没有太多运气。

有什么想法吗? 问候。

4 个答案:

答案 0 :(得分:1)

这实际上可能是重复的。您的解决方案看起来像这样。

    String inputString = "<div>This is more text i would like. :( </div><div> </div>";
    inputString = inputString.replace("&lt;", "<");
    inputString = inputString.replace("&gt;", ">");
    inputString = inputString.replaceAll("<[^>]*>", "");
    System.out.println(inputString);

这将提取不在html标签中的所有项目。我不确定你是否想要第一个元素或所有元素。这里假设将删除所有html标签,将所有文本保留在其位置,包括&符号。可以通过替换或策略来处理逃逸的&符号。

答案 1 :(得分:1)

你有另一个是aspose。看一下链接

http://www.aspose.com/java/word-component.aspx

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertHtml(
        "<P align='right'>Paragraph right</P>" +
                "<b>Implicit paragraph left</b>" +
                "<div align='center'>Div center</div>" +
                "<h1 align='left'>Heading 1 left.</h1>");

doc.save(getMyDir() + "DocumentBuilder.InsertHtml Out.doc");

答案 2 :(得分:1)

你确定你正确使用JSoup吗?对于这一点来说,这将是完美的,我会一直使用它来做同样的事情。

您的代码如下所示:

String stringWithHtml="<div>&nbsp;test&nbsp;</div>";
String extractedText = Jsoup.parse(stringWithHtml).text();
//extractedText is now "test"

确保JSoup库位于类路径中。

答案 3 :(得分:1)

您可以通过Jsoup和正则表达式

的组合操作来解决此问题
  String st="&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: TimesNewRoman;&quot;&gt; I Just want this Text here?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;";
  System.out.println(Jsoup.parse(st).text().replaceAll("\\<.*?>",""));