如何从 div class 获取文本?
How to get the text from div class?
我正在尝试从 HTML 页面阅读 div class 中的文本。
我正在尝试的是,我正在尝试阅读 div classes.
下面的文本
<div class="Oprice clearfix">
<div class="text-bold Nprice">
不懂,什么是clearfix和text-bold。请解释一下。
以下代码适用于 div classes.
Element lcEl = doc.getElementsByClass("Oprice").first(); //first div
System.out.println("found price: "+lcEl.text());
Element lcEl = doc.getElementsByClass("Nprice").first(); //second div
System.out.println("found price: "+lcEl.text());
但为什么下面的代码不起作用?
Element lcEl = doc.getElementsByClass("Oprice.clearfix").first(); //first div
System.out.println("found price: "+lcEl.text());
Element lcEl = doc.getElementsByClass("text-bold.Nprice").first();
System.out.println("found price: "+lcEl.text());
请帮帮我,有什么办法让它工作吗?
"Oprice" 和 "clearfix" 是
的两个 class
<div class="Oprice clearfix"/>
这意味着,您可以通过以下方式获取此标签:
doc.getElementsByClass("Oprice").first();
或
doc.getElementsByClass("clearfix").first();
无效代码:
doc.getElementsByClass("Oprice.clearfix").first()
只是没有意义。 document.getElementsByClass() 接受表示要查询的 class 的字符串。您提供的参数 ("Oprice.clearfix") 看起来像(但不是)css 查询。您需要在此方法中提供 准确无误 class 名称。
我认为你正在使用 jsoup。
根据您使用的方法getElementsByClass(String className)
不允许多个class名称
public Elements getElementsByClass(String className)
此方法查找具有此 class 的元素,包括此元素或在此元素下。它不区分大小写。元素可以有多个classes(例如<div class="header round first">
。这个方法检查每个class,所以你可以用el.getElementsByClass("header");
找到上面的。但是你不能提供class像 Oprice.clearfix
这样的名称。因为它的实现不允许这种参数。
Parameters: className - the name of the class to search for.
Returns: elements with the supplied class name, empty if none
如果你想捕获具有多个 classes 的元素,请使用 select()
,如下所示,
String html = "<div class=\"content-text right-align bold-font\">foo</div>";
Document document = Jsoup.parse(html);
Elements elements = document.select("div.content-text.right-align.bold-font");
System.out.println(elements.text());
我正在尝试从 HTML 页面阅读 div class 中的文本。
我正在尝试的是,我正在尝试阅读 div classes.
<div class="Oprice clearfix">
<div class="text-bold Nprice">
不懂,什么是clearfix和text-bold。请解释一下。 以下代码适用于 div classes.
Element lcEl = doc.getElementsByClass("Oprice").first(); //first div
System.out.println("found price: "+lcEl.text());
Element lcEl = doc.getElementsByClass("Nprice").first(); //second div
System.out.println("found price: "+lcEl.text());
但为什么下面的代码不起作用?
Element lcEl = doc.getElementsByClass("Oprice.clearfix").first(); //first div
System.out.println("found price: "+lcEl.text());
Element lcEl = doc.getElementsByClass("text-bold.Nprice").first();
System.out.println("found price: "+lcEl.text());
请帮帮我,有什么办法让它工作吗?
"Oprice" 和 "clearfix" 是
的两个 class<div class="Oprice clearfix"/>
这意味着,您可以通过以下方式获取此标签:
doc.getElementsByClass("Oprice").first();
或
doc.getElementsByClass("clearfix").first();
无效代码:
doc.getElementsByClass("Oprice.clearfix").first()
只是没有意义。 document.getElementsByClass() 接受表示要查询的 class 的字符串。您提供的参数 ("Oprice.clearfix") 看起来像(但不是)css 查询。您需要在此方法中提供 准确无误 class 名称。
我认为你正在使用 jsoup。
根据您使用的方法getElementsByClass(String className)
不允许多个class名称
public Elements getElementsByClass(String className)
此方法查找具有此 class 的元素,包括此元素或在此元素下。它不区分大小写。元素可以有多个classes(例如<div class="header round first">
。这个方法检查每个class,所以你可以用el.getElementsByClass("header");
找到上面的。但是你不能提供class像 Oprice.clearfix
这样的名称。因为它的实现不允许这种参数。
Parameters: className - the name of the class to search for.
Returns: elements with the supplied class name, empty if none
如果你想捕获具有多个 classes 的元素,请使用 select()
,如下所示,
String html = "<div class=\"content-text right-align bold-font\">foo</div>";
Document document = Jsoup.parse(html);
Elements elements = document.select("div.content-text.right-align.bold-font");
System.out.println(elements.text());