代码之家  ›  专栏  ›  技术社区  ›  guroosh

按类选择时,Jsoup元素为空

  •  0
  • guroosh  · 技术社区  · 6 年前

    我正在分析的html如下:

    <article id="1234" class="bg-post ">
    ....
    </article>
    

    当我尝试使用jsoup解析它时,得到了一个空字符串

    Elements e = doc.select("article[class=bg-post ]");
    

    或使用

    Elements e = doc.getElementsByClass("bg-post ");
    

    大小 e 是0和 e.toString() 是空的。

    这和 空间 在类名的末尾,我该如何解决这个问题。

    谢谢您。

    编辑:

    也试着在没有空间的情况下搜索

    Elements e = doc.select("article[class=bg-post]");
    

    还是同样的问题。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Maciej Dobrowolski    6 年前

    这是一个影响 JSoup 以前的版本 1.8.2

    如果元素的空间规格化不正确,则不能简单地按属性值选择元素。

    如果你真的要坚持 J组 版本,您可以用这种性能较低的方式解决它:

    document.select(".bg-post").select("article")
    
        2
  •  0
  •   Vladimir    6 年前

    为了我

    Elements e = doc.select("article[class=bg-post ]");
    
    

    很好用!

    这是我的代码:

    Document document = Jsoup.connect("http://localhost:8080/index.html").get();
    Elements select = document.select("article[class=bg-post ]");
    

    结果: Result

    html格式:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    <article id="1234" class="bg-post ">
      <div>test1</div>
      <div>test2</div>
      <div>test3</div>
    </article>
    </body>
    </html>
    

    和依赖性:

    <dependency>
       <groupId>org.jsoup</groupId>
       <artifactId>jsoup</artifactId>
       <version>1.11.3</version>
    </dependency>