Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用JSoup检测空引用?_Java_Jsoup - Fatal编程技术网

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