[Jsoup] Jsoup解析中需要注意的问题

来源:互联网 发布:考研网络辅导班 编辑:程序博客网 时间:2024/04/30 23:46

1. 若方法返回Elements

  • 若为空,返回为元素数组[];
  • 若此时查询元素数组里的元素,则返回null;
  • 若此时调用该元素的方法如e.html(),会报NullPointerException错误
  • 因此,判断返回值为Elements类型的变量t是否为空,不用if (t== null),用if (t.size()==0)

2. 若方法返回Element

  • 若为空,返回为元素数组null;
  • 若此时调用该元素的方法如e.html(),会报NullPointerException错误;
  • 因此,判断返回值为Element类型的变量t是否为空,用 if (t== null)

3.代码举例

  • Elements类型 若为空([]) 调用其他方法不报错 Element类型;
  • 若为空(null)调用其他方法报错NullPointerException
/************************************************///若无class="testcss",返回es为[]Element es = doc.getElementsByClass("testcss");//此时返回nulle.first();//报错nullPointerExcetion,由于first()返回nulles.first().html();//同理,报错nullPointerExcetion,由于first()返回nulles.first().remove();//同理,报错nullPointerExcetion,由于first()返回nulles.first.text();//同理,报错nullPointerExcetion,由于first()返回null es.first().getElementById("testId"); /*********************************************/ //与getElementByClass()不同(返回[]),这里返回的为nullElement es2 = doc.getElementById("testId");/**********************************************/doc.getElementById("dbaoidhbiao").remove();//空,报错,NullPointerExceptiondoc.getElementsByClass("andiahodmmm").remove(); //空,不报错doc.getElementsByAttribute("dabidahdbdhdhd").remove();//空,不报错doc.getElementsByTag("dnaddjjddjdjdjd").remove();//空,不报错doc.getElementsByAttribute("style").removeAttr("style");//空,不报错
0 0