繁体   English   中英

从HTML字符串Java提取文本

[英]Extract Text from HTML String Java

我有一个用标签和特殊字符填充的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,但是运气不佳。

有任何想法吗? 问候。

您确定使用正确的JSoup吗? 这将是完美的选择,我一直使用它来做同样的事情。

您的代码如下所示:

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

确保JSoup库在您的类路径中。

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

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

这将提取不在html标记中的所有项目。 我不确定是要第一个元素还是所有元素。 此处假设所有html标记都将被删除,所有文本都保留在其位置,包括“&”号。 可以使用替换或策略来处理逃逸的“&”号。

你还有另一个。 看一下链接

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");

您可以通过结合使用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("\\<.*?>",""));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM