JSoup,if else语句,用于检查标记是否存在

时间:2018-03-24 21:43:06

标签: java jsoup

我遇到的问题是有25个元素 div class =页面中的secondary-attributes,我正在尝试获取地址标记,但在这25个div元素中的某些元素中,地址标记可能根本不存在。

而span class = neighbor将始终存在。 如果有的话,我需要从地址中取出文本,否则我会从span类和&中获取文本。打印输出地址不存在。

    div class="secondary-attributes" 
    <span class="neighbor-str-list"> Mrt </span>
    <address>anything</address>

这是我在搜索后尝试过的代码,但它没有完成工作,因为它获取整个网站的地址属性大小。

     Elements a2 = doc.select("div.secondary-attributes");
     doc.select("div.secondary-attributes>address").size() > 0){
                    System.out.println("exist!");                        
                }
                else{
                    System.out.println("nothing");

这些是我的原始代码。但是每当我遇到没有地址的div块时它就会停止。

Elements a2 = doc.select("div.secondary-attributes");        
for (Element List : a2) {
    System.out.println("Address:"+List.getElementsByTag("address").get(0).text());
}

1 个答案:

答案 0 :(得分:0)

您可以对特定元素进行选择:

Elements a2 = doc.select("div.secondary-attributes");             
for (Element e : a2) {                                            
    if (e.select("div.secondary-attributes>address").size() > 0) {
        System.out.println("exist!");                             
    } else {                                                      
        System.out.println("nothing");                            
    }                                                             
}     

首先,您选择课程divs的所有secondary-attributes。然后循环遍历每个div,并为每个div检查是否存在地址标记。