Java 是否可以使用JSoup检测空引用?
我正试图用Java 是否可以使用JSoup检测空引用?,java,jsoup,Java,Jsoup,我正试图用Java中的JSoup获取网页的一些数据。我混合使用了JSoup和JSON解析器来实现这一点 假设网页中有许多元素的类名相同,而另一个元素的类名也相同,例如: <div class="foo"> <span class="bar">Whatever</span> </div> 问题的出现是因为有些div中没有span标记,所以当我检索网页所拥有的全部元素集合时,不存在的元素不会被追加(它有意义,但我需要检测这些元素) 我想稍后将
Java
中的JSoup
获取网页的一些数据。我混合使用了JSoup
和JSON
解析器来实现这一点
假设网页中有许多元素的类名相同,而另一个元素的类名也相同,例如:
<div class="foo">
<span class="bar">Whatever</span>
</div>
问题的出现是因为有些div中没有span
标记,所以当我检索网页所拥有的全部元素集合时,不存在的元素不会被追加(它有意义,但我需要检测这些元素)
我想稍后将所有数据存储在某个位置,但要保持列表的顺序,我的意思是,在span
不存在的元素中放置-
,因为如果不存在,如果有以下顺序:
1. foo
2. null
3. bar
仅存储第一和第三个位置数据,第三个位置将是第二个位置
是否可以使用JSoup
检测空引用
提前谢谢 Jsoup选择只返回现有元素。 要检测缺少的元素,可以首先查询顶部选择器,然后遍历结果以检查顶部元素是否包含所需的子元素:
Elements fooElements = Jsoup
.parse(html)
.body().select(".foo");
Elements elements = new Elements()
for(Element el : fooElements) {
elements.add(el.select(".bar").first());
}
在上面的示例中,
元素
将包含foo
类的两个跨度和空值。非常感谢!它工作得很好。我已更正for循环中的一个错误,您必须使用:
而不是中的。Happy codding:)是的,谢谢你的更正,我没有编译代码,当你使用这么多不同语言编写代码时,它会变得很奇怪
Elements fooElements = Jsoup
.parse(html)
.body().select(".foo");
Elements elements = new Elements()
for(Element el : fooElements) {
elements.add(el.select(".bar").first());
}