我正在解析的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]");
仍然是同样的问题。
这是在JSoup
之前影响1.8.2
版本的bug
如果元素的值没有正确地进行空间规范化,则不能简单地按属性值选择元素。
如果你真的必须坚持一些旧的JSoup
版本,你可以用这种性能较低的方式解决它:
document.select(".bg-post").select("article")
为了我
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 ]");
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>