使用JSOUP解析HTML表并将其显示到listview

时间:2014-02-27 12:48:59

标签: android list parsing html-table jsoup

我是 Android 编程的新手。我需要从HTML获取值并将其显示在列表中。 这是链接http://www.hak.hr/info/cijene-goriva/

- >所以我需要值(10,41,10.51)

<div id="div_eurosuper95">
                <table class="nowrapper fuel_segmented">
                <thead>
                    <tr>
                        <th>
                            Gorivo
                        </th>
                        <th>
                            Cijena (kn)
                        </th>
                    </tr>
                </thead>
                <tbody>

                    <tr>
                        <td class="fuel_name"><span class="vendorName">Tifon</span></br>euroSUPER 95 BS</td>
                        <td class="fuel_segmented">10,41</td>
                    </tr>

                    <tr>
                        <td class="fuel_name"><span class="vendorName">Tifon</span></br>EUROSUPER 95 
BS CLASS</td>
                        <td class="fuel_segmented">10,51</td>
                    </tr>

                    <tr>
                        <td class="fuel_name"><span class="vendorName">Crodux derivati</span></br>EUROSUPER 95 BS</td>
                        <td class="fuel_segmented">10,41</td>
                    </tr>


                    <tr>
                        <td class="fuel_name"><span class="vendorName">AdriaOil</span></br>Euro Super 95 BS TOP</td>
                        <td class="fuel_segmented">10,51</td>
                    </tr>

                </tbody>
            </table>
                </div>

2 个答案:

答案 0 :(得分:1)

您可以使用Jsoup选择器选择属于<td>类的所有fuel_segmented标记。

Document doc = Jsoup.parse(html);
Elements fuel = doc.select("td.fuel_segmented");

这是一个基本的CSS选择器语法,td指定标记,.指定它是一个类。如果它是具有td的特定id,您可以将其指定为td#fuel_segmented

这将返回Element个对象的集合,由Elements对象表示。

为了让它更容易看出是什么,你可以遍历元素并显示相应的燃料名称。

Elements fuel = doc.select("td.fuel_segmented");
for (Element element : fuel) {
    System.out.println(element.previousElementSibling().text()
    + ": " + element.text());
}

将输出

Tifon euroSUPER 95 BS: 10,41
Tifon EUROSUPER 95 BS CLASS: 10,51
Crodux derivati EUROSUPER 95 BS: 10,41
AdriaOil Euro Super 95 BS TOP: 10,51

我建议您阅读有关如何在Jsoup中使用选择器来解析所需数据的更多信息。可以找到食谱的那一部分here.

答案 1 :(得分:0)

要在ListView中显示您的数据,可以使用good tutorial了解其工作原理。

我真的不知道你在哪里得到这些价格,在Jsoup你有所有"Cookbooks"必要的,用例子解析html文件。