我怎么能用jsoup Android从html中获取元素

时间:2014-05-14 16:57:27

标签: android html parsing jsoup

我怎样才能获得粗体元素&#34;这个&#34;来自HTML使用jsoup。我的问题是我不知道如何使用这个元素,因为我需要检测它是否来自<tr>&#34; Ulica&#34;第一。我需要在document.select(...)中放入什么?有任何想法吗?感谢。

<table class="InfoTable">
    <tr>
        <td class="Name">Ulica:</td>
        <td class="Value"><span id="ctl00_RightContentPlaceholder_lbAregStreet">**THIS**</span></td>
    </tr>
    <tr>
        <td class="Name">Mesto:</td>
        <td class="Value"><span id="ctl00_RightContentPlaceholder_lbAregCity">XXXXX</span></td>
    </tr>
    <tr>
        <td class="Name">PSČ:</td>
        <td class="Value"><span id="ctl00_RightContentPlaceholder_lbAregZip">XXXX</span></td>
    </tr>
    <tr>
        <td class="Name">Štát:</td>
        <td class="Value"><span id="ctl00_RightContentPlaceholder_lbAregCountry">XXXXX</span></td>
    </tr>
</table>

2 个答案:

答案 0 :(得分:1)

您可以将所有内容整合到一个selector

示例:

// html is your posted html code here, you can connect to a website too.
final String html = ...
Document doc = Jsoup.parse(html); // Parse into document

// Select the element and print it
for( Element element : doc.select("td:contains(Ulica:) ~ td") )
{
    System.out.println(element);
}

<强>解释

td:contains(Ulica:) ~ td:选择带有文字td的{​​{1}}元素,然后选择下一个兄弟元素Ulicia

<强>输出:

td

现在,您可以从该元素中获取所需的值。

答案 1 :(得分:0)

看看this;这是用Java进行HTML解析的好方法。

String html="<table class=\"InfoTable\"<tr><td class=\"Name\">Ulica:</td> <td class=\"Value\"><span id=\"ctl00_RightContentPlaceholder_lbAregStreet\">**THIS**</span></td></tr><tr><td class=\"Name\">Mesto:</td><td class=\"Value\"><span id=\"ctl00_RightContentPlaceholder_lbAregCity\">XXXXX</span></td></tr></table>";
org.jsoup.nodes.Document doc = Jsoup.parse(html);

Iterator<Element> productList = doc.select("table[class=InfoTable]").iterator();

while (productList.hasNext()) {
    //Do some processing
    Element descLi = productList.next().select( "td:eq(1)").first();
    String rr = descLi.text();
    Log.d("TESTTT",rr );
}