Meus caros,
Estou fazendo uma aplicação em java para extrair os dados de uma tabela existente em arquivo html, baixado de um sistema web, para gravar em um banco de dados. Estou usando a biblioteca Jsoup, mas não estou conseguindo mapear as tags corretamente para extrair os campos da table.
Meu código:
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class TesteJsoup1 {
public static void main(String[] args) {
File file = new File("D:/arquivo.html");
Document doc;
try {
doc = Jsoup.parse(file,"UTF-8");
Elements table = doc.getElementsByTag("TABLE");
int count = 0;
count = table.size();
if (count > 0) {
System.out.println("Elemento encontrado: "+count);
System.out.println(table);
} else
System.out.println("Nenhum Elemento encontrado!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Segue trecho do código que contém os dados que preciso extrair:
<CENTER><TABLE width='95%' class='table_listagem'>
<TR>
<td class='td_titulo_tabela' colspan='15'>SOLICITAÇÕES RETORNADAS (7003)</TD>
</TR>
<TR style='border: 1px solid #000000;' align='center'>
<TD onMouseDown="javascript:ordena('1');" style="cursor: pointer;" class="td_titulo_campo" >Codigo</TD>
<TD onMouseDown="javascript:ordena('2');" style="cursor: pointer;" class="td_titulo_campo_selecionado" >Data da Solicitacao</TD>
<TD onMouseDown="javascript:ordena('3');" style="cursor: pointer;" class="td_titulo_campo" >Risco</TD>
<TD onMouseDown="javascript:ordena('4');" style="cursor: pointer;" class="td_titulo_campo" >Paciente</TD>
<TD class="td_titulo_campo" width="80" >Telefone</TD>
<TD onMouseDown="javascript:ordena('11');" style="cursor: pointer;" class="td_titulo_campo" >Municipio</TD>
<TD onMouseDown="javascript:ordena('5');" style="cursor: pointer;" class="td_titulo_campo" >Idade Paciente</TD>
<TD onMouseDown="javascript:ordena('6');" style="cursor: pointer;" class="td_titulo_campo" >Procedimento</TD>
<TD onMouseDown="javascript:ordena('7');" style="cursor: pointer;" class="td_titulo_campo" >CID</TD>
<TD onMouseDown="javascript:ordena('8');" style="cursor: pointer;" class="td_titulo_campo" >Unidade Solicitante</TD>
<TD onMouseDown="javascript:ordena('9');" style="cursor: pointer;" class="td_titulo_campo" >Unidade Executante</TD>
<TD onMouseDown="javascript:ordena('12');" style="cursor: pointer;" class="td_titulo_campo" >Data Execucao</TD>
<TD onMouseDown="javascript:ordena('10');" style="cursor: pointer;" class="td_titulo_campo" >Situacao</TD>
</TR>
<TR onClick="visualizaFicha(110837814);" class="par_tr linha_selecionavel">
<TD align="center">110837814</TD>
<TD align="center">04/08/2014</TD>
<TD align="center" title="1" ><img src=/imagens/amarelo.png></TD>
<TD align="left" title="Número CNS: 700001052622436
Nome Paciente: FULANA RIBEIRO DE TAL
Nome da Mae: MARIA RIBEIRO DE TAL
Data Nascimento: 19/06/1975
" >FULANA RIBEIRO DE TAL</TD>
<TD align="center">([telefone removido]</TD>
<TD align="left">RECIFE</TD>
<TD align="center">43 anos</TD>
<TD align="left">EXAME ULTRASSOM MAMA </TD>
<TD align="center" title="Z72">Z72</TD>
<TD align="left">PSF SANTANA</TD>
<TD align="left">UNIDADE PUBLICA DE ATENDIMENTO ESPECIALIZADO</TD>
<TD align="center">06/09/2016</TD>
<TD align="left">SOL/AUT/REG</TD>
</TR>
<TR onClick="visualizaFicha(118713557);" class="impar_tr linha_selecionavel">
<TD align="center">118713557</TD>
<TD align="center">30/10/2014</TD>
<TD align="center" title="3" ><img src=/imagens/azul.png></TD>
<TD align="left" title="Número CNS: 802562142491899
Nome Paciente: LUANA MARIA DA SILVA
Nome da Mãe: AMANDA SANTANA DA SILVA
Data Nascimento: 25/07/1958
" >LUANA MARIA DA SILVA</TD>
<TD align="center">---</TD>
<TD align="left">RECIFE</TD>
<TD align="center">58 anos</TD>
<TD align="left">CONSULTA CIRURGIA VASCULAR</TD>
<TD align="center" title="Z279">Z279</TD>
<TD align="left">PSF CAMPO LINDO</TD>
<TD align="left">CENTRO MEDICO SEN JOSE ERMIRIO DE MORAES</TD>
<TD align="center">30/08/2016</TD>
<TD align="left">SOL/AUT/REG</TD>
</TR>