在我的应用程序中,我从RSS fedd项目(标签描述)中获取了一个字符串并将其放在ListView中,但String看起来像这样:
我尝试使用此方法删除标记但不起作用:
var object = {
name: "venu",
id: 99,
age: 100,
"x": [
"balaji",
22,
11
],
"y": {
name: "balu",
id: 55,
age: 22
}
};
var g = object.x;
for (var i = 0; i < g.length; i++) {
for (var k = 0; k < g[i].y.length; k++) {
console.log(g[i].y.name);
}
}
答案 0 :(得分:3)
最好不要删除HTML
代码,但要正确渲染它们。
textView.setText(Html.fromHtml(sourceString));
答案 1 :(得分:0)
为什么不直接使用String中的replace()?
答案 2 :(得分:0)
如果要正确渲染HTML,可以使用
Spanned parsedHtmlString = Html.fromHtml(htmlString)
instaed如果渲染html可能会导致一些布局问题,你可以用它来删除html标签
Spanned strippedHtmlString = Html.fromHtml(htmlString).toString()
请记住,从Android N开始不推荐使用这些metdods,所以你需要使用类似的东西来编译API 24 +
Spanned result;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
result = Html.fromHtml(htmlString, Html.FROM_HTML_MODE_LEGACY); //add .toString() to remove html tags
} else {
result = Html.fromHtml(htmlString); //add .toString() to remove html tags
}
取自here
修改强> 根据你的评论,我认为你应该这样做:
public RssItem(Parcel source) {
Bundle data = source.readBundle();
title = Html.fromHtml(data.getString("title")).toString();
link = Html.fromHtml(data.getString("link")).toString();
pubDate = (Date) data.getSerializable("pubDate");
description = Html.fromHtml(data.getString("description")).toString();
content = Html.fromHtml(data.getString("content")).toString();
feed = data.getParcelable("feed");
}
我省略了一些对象,因为它实际上取决于它们包含的内容。 此外,在使用Html.fromHtml
解析它们之前,您应该检查null答案 3 :(得分:0)
您可以使用Jsoup删除html标记。
private String refactor(String html) {
return Jsoup.parse(html).text();
}