由于查询远程 XML 提要,我得到一个 HTML 字符串。我使用结果将文本设置为TextView
. 问题是字符串包含TextView
元素不支持的 HTML 注释标记。
现在,我需要一种通过指示将被删除的部分来删除(子字符串)结果字符串的方法。我不能通过开始和结束位置工作,但我必须使用开始和结束字符串模式(<!--
作为开始和-->
结束)。
我怎样才能做到这一点?
也许使用这个:
String str = "your html string";
int start = str.indexOf("<!--");
int end = str.indexOf("-->");
str = str.replace(str.substring(start, (end - start)), "");
我在这里找到了这个。我相信,由于 android 在这里是一个标签,所以答案将是相关的。
android.text.Html.fromHtml(instruction).toString()
您可以使用正则表达式,例如
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);
你也可以使用HTML.fromHTML
您可以使用该Html.fromHtml()
方法在 a 中使用 html 格式的文本TextView
,例如:
CharSequence text = Html.fromHtml("before <!--comment--><b>after</b>");
myTextView.setText(text);
TextView 现在将具有“之前之后”的文本。