Jsoup在listview中削减

时间:2015-09-24 09:17:28

标签: android jsoup

我在使用列表视图中的Jsoup解析维基页面时遇到问题:

try {
    // NB: controllate di importare le classi giuste
    // all'inizio ci deve essere org.jsoup

    // ricavo l'html della pagina con user agent desktop (Chrome)
    // e timeout 30000
    Document doc = Jsoup.connect("https://it.wikiquote.org/wiki/Sonno")
            .userAgent("Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22")
            .timeout(30000).get();

    // prendo la tabella
    // (con .first() ottengo il primo elemento, in questo caso l'unico )
    Element tabella = doc.getElementsByClass("ul").first();
    List<String> titoli = new ArrayList<>();
    List<String> descrizioni = new ArrayList<>();
    // prendo gli elementi che mi interessano dalla tabella
    Elements sezioni = tabella.getElementsByClass("li");
    for(Element sezione : sezioni)//per ogni sezione tra gli elementi ricavati prima
    {
        //ricavo ogni riga nella sezione
        Elements righe_sezione = sezione.getElementsByClass("li");
        for(Element riga : righe_sezione)
        {
            //prelevo la cella delle info
            Element info = riga.getElementsByClass("li").first();

            // ricavo il titolo
            // (con .text() ottengo il testo non formattato
            String titolo = info.getElementsByClass("li").first().text();

            // ricavo la descrizione
            // (uso .first() per essere sicuro che sia proprio la descrizione
            // e non i moderatori )
            String descrizione = info.getElementsByTag("li").first().text();

            // inserisco nei rispettivi arraylist
            titoli.add(titolo);
            descrizioni.add(descrizione);
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

我需要解析此页面:https://it.wikiquote.org/wiki/Sonno

1 个答案:

答案 0 :(得分:1)

您尝试选择我猜的<ul>元素,但您要做的是查找类ul的元素。相反,你应该这样做:

Element tabella = doc.getElementsByTag("ul").first();

或者您可以使用CSS选择器:

Element tabella = doc.select("ul").first();