Получить более одного элемента JSoup Java Android - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь получить список элементов для формирования списка воспроизведения, и я могу получить только один из элементов. Вот код, который я имею в bindView моего реселлера:

@Override
public void onBindViewHolder(PlaylistViewHolder holder, int position)
{

    try
    {
        String url = "https://www.c895.org/playlist";
        Document document = Jsoup.connect(url).get();

        Element playlist = document.select("#playlist").first();

        List<TrackInfo> tracks = new ArrayList<>();

        for(Element track : playlist.children())
        {
            long time = Long.parseLong(track.dataset().get("ts"));
            String title = track.select(".title").text();
            String artist = track.select(".artist").text();

            tracks.add(new TrackInfo(new Date(time * 1000), title, artist));
        }
        for(int i = 0; i < tracks.size() - 1; i++)
        {

            holder.titlesView.setText(tracks.get(i).toString());
        }
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }

}

В идеале я хотел бы получить около 10-20 результатов. Могу ли я в любом случае сделать это?

1 Ответ

1 голос
/ 13 марта 2019

Это потому, что необходимая HTML-часть находится в следующем теге:

<div id="playlist">

</div>

Поэтому вы не можете использовать следующее:

Element playlist = document.select("#playlist").first();

, но вам нужно использовать div#playlist чтобы получить все элементы плейлиста:

Element playlist = document.select("div#playlist");
...