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

<div class="Oprice clearfix">
<div class="text-bold Nprice">


我不明白,什么是clearfix和文本粗体。请给我解释一下。
以下代码适用于两个div类。

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());


请帮助我,有什么方法可以使它正常工作吗?

最佳答案

我认为您正在使用jsoup。

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

public Elements getElementsByClass(String className)


此方法查找具有此类的元素,包括该元素或在该元素下。它不区分大小写。元素可以有多个类(例如<div class="header round first">。此方法检查每个类,因此您可以在el.getElementsByClass("header");中找到上面的类。但是您不能提供像Oprice.clearfix这样的类名。因为其实现不允许这种参数。


  参数: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());

10-05 22:51
查看更多