Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从div类中获取文本?_Java_Html Parsing_Jsoup - Fatal编程技术网

Java 如何从div类中获取文本?

Java 如何从div类中获取文本?,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,我正在尝试从HTML页面读取div类中的文本。 我正在尝试的是,我正在尝试阅读div类下面的文本 <div class="Oprice clearfix"> <div class="text-bold Nprice"> Element lcEl = doc.getElementsByClass("Oprice").first(); //first div System.out.println("found price: "+lcEl.text()); Element

我正在尝试从HTML页面读取div类中的文本。
我正在尝试的是,我正在尝试阅读div类下面的文本

<div class="Oprice clearfix">
<div class="text-bold Nprice">
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”是两门课程

<div class="Oprice clearfix"/>

不工作代码:

doc.getElementsByClass("Oprice.clearfix").first()

只是说不通。getElementsByClass()接受表示要查询的类的字符串。您提供的参数(“Oprice.clearfix”)看起来像(但不是)css查询。您需要在此方法中提供准确的类名称。

我认为您使用的是jsoup

根据您使用的方法
getElementsByClass(stringclassname)
,不允许使用多个类名

public Elements getElementsByClass(String className)
此方法查找具有此类的元素,包括或在该元素下。它不区分大小写。元素可以有多个类(例如,
。此方法检查每个类,因此您可以使用
el.getElementsByClass(“header”);
找到上面的类。但是您不能提供像
Oprice.clearfix
这样的类名,因为它的实现不允许这种参数

Parameters:className—要搜索的类的名称

返回:具有提供的类名的元素,如果没有则为空

如果希望捕获具有多个类的元素,请使用
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());
String html=“foo”;
documentdocument=Jsoup.parse(html);
元素=文档。选择(“div.content-text.right align.bold font”);
System.out.println(elements.text());

谢谢王宇的精彩解释。我也有类似的情况。@savendra ekanayake-你能帮我一下吗不为我工作我有下面的HTML这是测试用的
public Elements getElementsByClass(String className)
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());