0

由于查询远程 XML 提要,我得到一个 HTML 字符串。我使用结果将文本设置为TextView. 问题是字符串包含TextView元素不支持的 HTML 注释标记。

现在,我需要一种通过指示将被删除的部分来删除(子字符串)结果字符串的方法。我不能通过开始和结束位置工作,但我必须使用开始和结束字符串模式(<!--作为开始和-->结束)。

我怎样才能做到这一点?

4

5 回答 5

1

也许使用这个:

String str = "your html string";
int start = str.indexOf("<!--");
int end = str.indexOf("-->");
str = str.replace(str.substring(start, (end - start)), "");
于 2012-05-04T08:34:01.793 回答
1

我在这里找到了这个。我相信,由于 android 在这里是一个标签,所以答案将是相关的。

android.text.Html.fromHtml(instruction).toString()

从 String 中删除 HTML 标记

于 2012-05-04T08:35:54.953 回答
1

您可以使用正则表达式,例如

    String input = "<!-- \nto be removed -->hello <!-- to be removed-->world";
    Pattern pattern = Pattern.compile("<!--.*?-->", Pattern.DOTALL | Pattern.UNICODE_CASE | Pattern.MULTILINE);
    Matcher matcher = pattern.matcher(input);
    StringBuilder builder = new StringBuilder();
    int lastIndex = 0;
    while (matcher.find()) {
        builder.append(input.substring(lastIndex, matcher.start()));
        lastIndex = matcher.end();
    }
    builder.append(input.substring(lastIndex));
    System.out.println(builder);
于 2012-05-04T08:38:54.430 回答
0

你也可以使用HTML.fromHTML

于 2012-05-04T08:35:36.697 回答
0

您可以使用该Html.fromHtml()方法在 a 中使用 html 格式的文本TextView,例如:

CharSequence text = Html.fromHtml("before <!--comment--><b>after</b>");
myTextView.setText(text);

TextView 现在将具有“之前之后”的文本。

于 2012-05-04T08:35:58.187 回答