我试图在这里使用JSOUP解析html标记。我对jsoup是新来的。基本上,我需要解析这些标记,获取这些标记中的文本,并应用class属性中提到的样式。
我正在创建一个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>
完整答案:您可以通过获取childNodes()
来获取标记之外的文本。这样就可以获得列表
。注意:我选择body
是因为您的HTML片段没有任何父元素,并且使用jsoup分析HTML片段会自动添加和
。
如果node
只包含文本,它的类型为textNode
并且可以使用ToString()
获取内容。
否则,可以将它转换为element
并使用element.text()
获取文本。
String str = "There are <span class='newStyle'> two </span> workers from the <span class='oldStyle'>Front of House</span>";
Document doc = Jsoup.parse(str);
Element body = doc.selectFirst("body");
List<Node> childNodes = body.childNodes();
for (int i = 0; i < childNodes.size(); i++) {
Node node = body.childNodes().get(i);
if (node instanceof TextNode) {
System.out.println(i + " -> " + node.toString());
} else {
Element element = (Element) node;
System.out.println(i + " -> " + element.text());
}
}
输出:
0 ->
There are
1 -> two
2 -> workers from the
3 -> Front of House
顺便说一下:我不知道在there are
之前如何去掉第一个换行符。
我想解析一个HTML表,但我不明白如何获得值。我有这张桌子: 你能为我杀一儆百吗?我要分析此表得所有值...提前谢谢! 编辑:SPAN值:
主要内容:Jsoup 解析HTML正文 语法,Jsoup 解析HTML正文 说明,Jsoup 解析HTML正文 示例以下示例将展示将 HTML 片段字符串解析为 Element 对象作为 html 正文。 Jsoup 解析HTML正文 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 片段字符串。 body : 表示文档正文元素的子元素,等效于 document.getElementsByTag("body"
我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?
然后我就说: 我一直在看这个教程:http://www.androidbegin.com/tutorial/android-jsoup-listview-images-texts-html-tables-tutorial/ 有多个
问题内容: 在页面中,我想选择一个变量的值。以下是页面的摘要。 我的目的是使用来从此页面读取变量的值。有可能吗?如果是,那怎么办? 问题答案: 由于jsoup不是javascript库,因此有两种方法可以解决此问题: A.使用JavaScript库 优点: 全面的Javascript支持 缺点: 附加的天秤/依赖项 B.使用Jsoup +手动解析 优点: 无需额外的库 足以完成简单的任务 缺点:
我正在尝试使用JSOUP解析来自特定网站的信息。到目前为止,我可以解析和显示单行,因为网站有很多html,我对此很陌生,我想知道有没有一种方法可以解析包含单词“fixturerow”的页面上的所有表行。 下面是我的解析器代码: 谢谢你抽出时间!