Java 如何从div类中获取文本?
我正在尝试从HTML页面读取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
我正在尝试的是,我正在尝试阅读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());