Azat-777
Azat-777

Reputation: 95

Parsing HTML with Jsoup lib

I'm trying parse html with Jsoup lib. Everything works perfect, but something that does't display.
Code:

protected ArrayList<Order> doInBackground(String... urls) {

        listItems.clear();
        myAdapterDouble.notifyDataSetChanged(); 
        String url = null;

        try {
            Document doc = Jsoup.connect(URL).timeout(0).userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").get();

            Elements days = doc.select("div.day_now");
            for (Element day : days) {
                dd = day.select("div.tooltip");
                for (Element d : dd) {

                    title = d.select("td.tooltip_title h4").text();
                    time = d.select("td.tooltip_info h4").text();
                    img = d.select("td.tooltip_desc img[src]");

                    Order o = new Order();
                    o.setLink(URL + img.attr("src"));
                    o.setTextName(title);
                    o.setTextTime(time
                            .replace("on", getResources().getString(R.string.on))
                            .replace("at", getResources().getString(R.string.at))
                            .replace("Ep:", getResources().getString(R.string.episode))
                            .replace("Final", getResources().getString(R.string.final_ep)));
                    o.setDetailsUrl(URL + url);   //set urls text in list
                    listItems.add(o);
                }

                Elements links = day.select("h3");
                for (Element link : links) {
                    url = link.select("a").attr("href");  // parse page urls
                    System.out.println(url);    //display urls in LogCat                    
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        return listItems;
    }

In LogCat i see urls, that i parse in code above

01-20 12:13:17.671: I/System.out(23390): /show/678/AKB0048_next_stage
01-20 12:13:17.671: I/System.out(23390): /show/668/Battle_Spirits%3A_Sword_Eyes
01-20 12:13:17.671: I/System.out(23390): /show/694/Beast_Saga
01-20 12:13:17.671: I/System.out(23390): /show/660/Cross_Fight_B-Daman_eS

But these links are not displayed on the screen instead i get null.
What am I doing wrong?
Thanks.

Upvotes: 1

Views: 356

Answers (1)

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132982

Currently you are not adding url to listItems . change your code as to get url :

           ArrayList<Order> newarraylist=new ArrayList<Order>; 
           Elements links = day.select("h3");
           int urlcount=0;
           for (Element link : links) {
                url = link.select("a").attr("href");  // parse page urls
                System.out.println(url);    //display urls in LogCat 
              if(urlcount < listItems.size()){
                Order o = (Order)listItems.get(urlcount);
                o.setDetailsUrl(URL + url);   //set urls text in list
                newarraylist.add(o);
              }
              urlcount++;
            }

now return newarraylist from doInBackground instead of listItems

Upvotes: 1

Related Questions