Разбор тега с принудительным закрытием JSOUP для исключения nullPointerException - PullRequest
0 голосов
/ 17 августа 2011

При попытке разобрать ссылку

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

с использованием

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

Это дает мне нулевое исключение.

А также с этим

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 голосов
/ 10 февраля 2012

На первом вы можете просто позвонить

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

Вам не нужен div как его часть, поскольку object-overview - это id. Вы получали NullPointerException, потому что выражение в вашем выборе было неправильным, поэтому select вернул ноль, потому что ничего не смог найти.

Не уверен, почему второй не будет работать для вас. Я вижу, что есть хотя бы один div с классом callout-box. Если featuresText не равно нулю?

0 голосов
/ 01 сентября 2011

Согласно http://jsoup.org/apidocs/, Jsoup выдает NullPointerException, если аргумент равен нулю.Другими словами, скорее .select("div#object-overview") возвращает ноль или .select("p").Попробуйте сначала проверить на ноль, затем используйте .last() метод, подобный этому

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

и т. Д.

...