【问题标题】:How to get the text from div class?如何从 div 类中获取文本?
【发布时间】:2015-09-09 06:20:19
【问题描述】:

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

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

我不明白,什么是 clearfix 和 text-bold。请解释一下。 以下代码适用于两个 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());

请帮帮我,有什么办法让它工作吗?

【问题讨论】:

    标签: java html-parsing jsoup


    【解决方案1】:

    我认为你正在使用 jsoup。

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

    public Elements getElementsByClass(String className)
    

    此方法查找具有此类的元素,包括或在此元素下。它不区分大小写。元素可以有多个类(例如&lt;div class="header round first"&gt;。此方法检查每个类,因此您可以使用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());
    

    【讨论】:

    • 不适合我,我有以下 HTML
      这是为了测试
    【解决方案2】:

    “Oprice”和“clearfix”是

    的两个类
    <div class="Oprice clearfix"/>
    

    也就是说,您可以通过以下方式获取此标签:

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

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

    不工作的代码:

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

    只是没有意义。 document.getElementsByClass() 接受表示您要查询的类的字符串。您提供的参数(“Oprice.clearfix”)看起来像(但不是)一个 CSS 查询。您需要在此方法中提供准确且准确的类名。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多