使用JSOUP解析标记强制关闭nullPointerException

时间:2011-08-17 01:11:54

标签: android jsoup

尝试解析链接时

http://pc.gamespy.com/pc/bastion/

使用

Element overview = doc.select("div#object-overview").last();
    Element paragraph = overview.select("p").last();

它给了我一个nullpointerexception。

还有这个

http://wii.gamespy.com/wii/jerry-rice-nitus-dog-football/

它在这里给出空指针

Element featureList = doc.select("div.callout-box").last();
featuresText.setText("FEATURE: " + featureList.text());

这是为什么?我正在尝试检索概述部分。它适用于所有其他项目。

2 个答案:

答案 0 :(得分:0)

根据http://jsoup.org/apidocs/,如果参数为null,Jsoup将抛出NullPointerException。换句话说,.select("div#object-overview")返回null或.select("p")。首先尝试检查null,然后使用像这样的.last()方法

Elements overviews = doc.select("div#object-overview");
if(!overview==null){
Element overview = overviews.last();
}

答案 1 :(得分:0)

在第一个上你应该可以简单地调用

Element overview = doc.select("#object-overview").last();

您不应该将div作为其中的一部分,因为object-overviewid。您收到NullPointerException,因为您的select中的表达式不正确,因此select返回null,因为它找不到任何内容。

不确定为什么第二个不适合你。我可以看到至少有一个带有类标注框的div。除非featuresText为空?