Jsoup 在检查 hasAttribute 方法时抛出 NullPointerException (Android)
Jsoup throws NullPointerException when checking the hasAttribute Method (Android)
我正在尝试在 Android Studio 中使用 jsoup 从网站中提取信息。我放置了条件但无法避免应用程序崩溃。它抛出 NullPointerException 错误。错误代码是:
Attempt to invoke virtual method 'boolean org.jsoup.nodes.Element.hasAttr(java.lang.String)' on a null object reference.
代码的相关部分是:
// Check if the related selections are not null
if (relatedNewsPage.select("meta[property=og:title]") != null &&
relatedNewsPage.select("meta[property=og:image]") != null &&
relatedNewsPage.select("meta[property=article:modified_time]") != null) {
// Check if the related selections has desired attribute
if(relatedNewsPage.selectFirst("meta[property=og:title]").
hasAttr("content") &&
relatedNewsPage.selectFirst("meta[property=og:image]").
hasAttr("content") &&
relatedNewsPage.selectFirst("meta[property=article:modified_time]").
hasAttr("content")){
//Then extract the news' title, imagelink and update time
String title = relatedNewsPage.selectFirst("meta[property=og:title]").
attr("content");
String imageLink = relatedNewsPage.selectFirst("meta[property=og:image]").
absUrl("content");
String updateTime = relatedNewsPage.selectFirst("meta[property=article:modified_time]").
attr("content");
错误与updateTime 属性有关。有人可以帮忙吗?
您正在检查 select
上的空检查,但在检索内容时您正在调用 selectFirst
。
改变这个
if (relatedNewsPage.select("meta[property=og:title]") != null &&
relatedNewsPage.select("meta[property=og:image]") != null &&
relatedNewsPage.select("meta[property=article:modified_time]") != null)
到
if (relatedNewsPage.selectFirst("meta[property=og:title]") != null &&
relatedNewsPage.selectFirst("meta[property=og:image]") != null &&
relatedNewsPage.selectFirst("meta[property=article:modified_time]") != null)
我正在尝试在 Android Studio 中使用 jsoup 从网站中提取信息。我放置了条件但无法避免应用程序崩溃。它抛出 NullPointerException 错误。错误代码是:
Attempt to invoke virtual method 'boolean org.jsoup.nodes.Element.hasAttr(java.lang.String)' on a null object reference.
代码的相关部分是:
// Check if the related selections are not null
if (relatedNewsPage.select("meta[property=og:title]") != null &&
relatedNewsPage.select("meta[property=og:image]") != null &&
relatedNewsPage.select("meta[property=article:modified_time]") != null) {
// Check if the related selections has desired attribute
if(relatedNewsPage.selectFirst("meta[property=og:title]").
hasAttr("content") &&
relatedNewsPage.selectFirst("meta[property=og:image]").
hasAttr("content") &&
relatedNewsPage.selectFirst("meta[property=article:modified_time]").
hasAttr("content")){
//Then extract the news' title, imagelink and update time
String title = relatedNewsPage.selectFirst("meta[property=og:title]").
attr("content");
String imageLink = relatedNewsPage.selectFirst("meta[property=og:image]").
absUrl("content");
String updateTime = relatedNewsPage.selectFirst("meta[property=article:modified_time]").
attr("content");
错误与updateTime 属性有关。有人可以帮忙吗?
您正在检查 select
上的空检查,但在检索内容时您正在调用 selectFirst
。
改变这个
if (relatedNewsPage.select("meta[property=og:title]") != null &&
relatedNewsPage.select("meta[property=og:image]") != null &&
relatedNewsPage.select("meta[property=article:modified_time]") != null)
到
if (relatedNewsPage.selectFirst("meta[property=og:title]") != null &&
relatedNewsPage.selectFirst("meta[property=og:image]") != null &&
relatedNewsPage.selectFirst("meta[property=article:modified_time]") != null)