[英]Jsoup Get Element only if it exists
我正在寻找一种可能只在它存在的情况下获取元素的可能性。 否则我会收到错误,因为它不存在。
以下是我的案例:
是)我有的:
Element e = doc.getElementsByClass("table table-striped table-hover nofooter-").first();
Element tbody = e.select("tbody").first();
int j = 0;
while(tbody != null){
Element tr = tbody.select("tr").get(j); //Look for the next "tr" --> HERE: error, because there is no more "tr", if string "A" not found in all existing "tr"s.
if(tr != null){
if(string == "A"){
//Do something
}
j = j+1; //Increment for looking for the next "tr"
}
}
如果存在“next”“tr”元素,我需要一个构造来检查。
问题在于,当您执行以下操作时,您将多个方法链接在一起:
tbody.select("tr").get(j);
如果语句的第一部分tbody.select("tr")
没有返回任何内容,则在尝试调用get(j)
时会出现错误,因为您无法在空对象上调用方法。
相反,打破你的方法分开线。
首先执行tbody.select("tr")
并将结果保存到单独的elements
变量中。 然后,添加一个检查以查看elements变量是否为空。 您可以通过执行!elements.isEmpty()
或elements.size() > 0
。 一旦确定变量不为空,就可以对变量调用.get(j)
方法并设置Element tr
值。
生成的代码如下所示:
while(tbody != null){
Elements elements = tbody.select("tr");
if(!elements.isEmpty()){
Element tr = temp.get(j);
if(tr != null){
if(string == "A"){
//Do something
}
j = j + 1; //Increment for looking for the next "tr"
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.