[英]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>&nbsp;</div>
我只是想知道是否有任何方法可以从html字符串中提取文本。 我试图使用一些正则表达式来替换字符串,但似乎并没有做到这一点。 也尝试过JSoup,但是运气不佳。
有任何想法吗? 问候。
您确定使用正确的JSoup吗? 这将是完美的选择,我一直使用它来做同样的事情。
您的代码如下所示:
String stringWithHtml="<div> test </div>";
String extractedText = Jsoup.parse(stringWithHtml).text();
//extractedText is now "test"
确保JSoup库在您的类路径中。
这实际上是可能的重复。 您的解决方案看起来像这样。
String inputString = "<div>This is more text i would like. :( </div><div>&nbsp;</div>";
inputString = inputString.replace("<", "<");
inputString = inputString.replace(">", ">");
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="<p class="MsoNormal"><span style="font-size: 14pt; font-family: TimesNewRoman;"> I Just want this Text here?<o:p></o:p></span></p>";
System.out.println(Jsoup.parse(st).text().replaceAll("\\<.*?>",""));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.