我有一串带有标签和特殊字符的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,但没有太多运气。
有什么想法吗? 问候。
答案 0 :(得分:1)
这实际上可能是重复的。您的解决方案看起来像这样。
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标签,将所有文本保留在其位置,包括&符号。可以通过替换或策略来处理逃逸的&符号。
答案 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> test </div>";
String extractedText = Jsoup.parse(stringWithHtml).text();
//extractedText is now "test"
确保JSoup库位于类路径中。
答案 3 :(得分:1)
您可以通过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("\\<.*?>",""));