【发布时间】:2020-04-26 16:01:18
【问题描述】:
我正在尝试使用 jsoup 解析此处的 html 标签。我是jsoup的新手。基本上我需要解析标签并获取这些标签内的文本并应用类属性中提到的样式。
我正在创建一个 SpannableStringBuilder,我可以为此创建子字符串、应用样式并将它们与没有样式的文本一起附加。
String str = "There are <span class='newStyle'> two </span> workers from the <span class='oldStyle'>Front of House</span>";
SpannableStringBuilder text = new SpannableStringBuilder();
if (value.contains("</span>")) {
Document document = Jsoup.parse(value);
Elements elements = document.getElementsByTag("span");
if (elements != null) {
int i = 0;
int start = 0;
for (Element ele : elements) {
String styleName = type + "." + ele.attr("class");
text.append(ele.text());
int style = context.getResources().getIdentifier(styleName, "style", context.getPackageName());
text.setSpan(new TextAppearanceSpan(context, style), start, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.append(ele.nextSibling().toString());
start = text.length();
i++;
}
}
return text;
}
我不确定如何解析不在任何标签之间的字符串,例如“There are”和“worker from the”。
需要输出如:
- There are
- <span class='newStyle'> two </span>
- workers from the
- <span class='oldStyle'>Front of House</span>
【问题讨论】:
-
@KrystianG:谢谢。从节点如何获取剥离 html 的文本,例如文本“two”?