【问题标题】:How to unescape HTML Tags in string java如何在字符串java中取消转义HTML标签
【发布时间】:2015-08-18 04:40:08
【问题描述】:

我想以纯字符串格式从 HTML 字符串中获取内容。

我原来的字符串是这样的:

1. <br/>Test Plan: YTL Test Plan for Release 1<br/><br/>Test Case: Clarity TC - Provisioning 1<br/><br/>Test Script: to test provisioning ADD option<br/><br/>Project Area: CLM Test (Quality Management)
2. Failing Test Case &quot;Clarity TC - Provisioning 1&quot;

现在,我想替换所有 html 字符并将其转换为字符串格式。

目前我正在使用 StringEscapeUtils.unescapeHtml(String) 来解决我的目的,它给我的输出如下

1. <br/>Test Plan: YTL Test Plan for Release 1<br/><br/>Test Case: Clarity TC - Provisioning 1<br/><br/>Test Script: to test provisioning ADD option<br/><br/>Project Area: CLM Test (Quality Management)
2. Failing Test Case "Clarity TC - Provisioning 1"

所以它适用于我的第二个字符串,但不适用于第一个

我们可以借助某个类来实现这一点吗?

我不想使用正则表达式或替换方法,还有其他需要做的类吗?

【问题讨论】:

  • 你可以试试String#replace() 换成&lt;br/&gt;
  • 要删除第一个字符串中的 HTML 标签吗?
  • 字符串和我都不想使用替换方法
  • 你想要什么?您是说unescapeHtml 为您工作,然后说您想通过课程来实现这一目标。 StringEscapeUtils 是一个这样做的类。显示您想要的结果。
  • StringEscapeUtils 适用于第二个字符串而不是第一个,因为第一个字符串仍然包含 &lt;br/&gt;

标签: java html regex string


【解决方案1】:

1) 使用Jsoup 类:-

public static String html2String(String html) {
    return Jsoup.parse(html).text();
 }

2) 使用正则表达式,您可以执行以下操作:-

String str="<br/>Test Plan: YTL Test Plan for Release 1<br/><br/>Test Case: Clarity TC - Provisioning 1<br/><br/>Test Script: to test provisioning ADD option<br/><br/>Project Area: CLM Test (Quality Management)";
  String rx="\\<[^>]*>";
  System.out.println(str.replaceAll(rx, ""));

3) 使用 com.google.gdata.util.common.html.HtmlToText 如下:-

  HtmlToText.htmlToPlainText(string)

【讨论】:

  • 我会试用 Jsoup 然后再确认
【解决方案2】:

我遇到了和你一样的问题。 我没有使用 br 标记换行,而是使用 '\n' 并保持文本格式,我将此样式添加到显示此文本的元素中:

white-space: pre-wrap;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2011-04-02
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多