Извлечение тегов HTML Table (span) с помощью Jsoup в Java - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь извлечь имя td и класс span. В примере кода я хочу извлечь href в первом тд «аксессуар» и тег span во втором тд.

Я хочу напечатать Мышь, есть, да KeyBoard, Нет Двойной монитор, есть, да

Когда я использую приведенный ниже код Java, я получаю, Мышь да Клавиатура № Двойной монитор Да.

Как получить имя класса диапазона?

HTML-код

<tr> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory">Mouse</a> 
  </td> 

 <td class="tright "> 
    <span class='is_present'>Yes</span><br/> 

 </td> 
 <td class="tright "> 
    &nbsp;<br/> 

 </td> 

<tr> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory"> KeyBoard</a> 
  </td> 


  <td colspan="2" class="" style='text-align:center;'> 
    <small>No</small> 
  </td> 

  <td class="" width="1%" style="padding:0px;"> 

  </td> 
  <td class=""> 
    <a href="/accessory">Dual-Monitor</a> 
  </td> 

  <td class="tright "> 
    <span class='is_present'>Yes</span><br/> 

 </td> 
 <td class="tright "> 
    &nbsp;<br/> 

</td> 

Java-код

private void printParse (String HTMLdata) {

Element table = data.select("table[class="computer_table").first();

Iterator<Element> ite = table.select("td").iterator();


while(ite.hasnext()){

      sysout(ite.next().text());

   }

}

Ответы [ 2 ]

1 голос
/ 22 июля 2011

если вы получите элемент таблицы, то все, что вам нужно, это получить span.вам не нужно получать td, потому что вы можете запросить, используя span, и все равно получить тот же результат.ниже приведен фрагмент кода.

Elements span = table.select("span");
    for (Element src : span) {
        if (src.tagName().equals("span"))
            System.out.print( src.attr("class") );
    }

, но убедитесь, что вы получили элемент таблицы.

0 голосов
/ 23 июля 2011
Element table = doc.select("table[id=computer_table]").first();

Элементы результатов = table.select ("td");

        for (Element dl : results) {
            if(!dl.text().equals("") && dl.text().length() > 1)
                pNames.add(dl.text());

            if((!dl.select("small").text().equals("")) && dl.select("small").text().length() > 1)
                emails.add((dl.select("small").text()));

            if(!dl.select("span").attr("class").equals("") && dl.select("span").attr("class").length() > 1)
                moneyDollars.add(dl.select("span").attr("class"));
        }
...