2011-04-26 14 views
5

Tengo un código de Java que toma una tabla html y la convierte en un iterador que uso un ciclo while para analizar y agregar a una base de datos. Mi problema es que el encabezado de la tabla me está causando problemas mientras reviso mi apariencia (ya que no pasa mis controles de calidad de datos). ¿Hay alguna manera de saltear la primera fila?¿hay alguna manera de omitir la primera entrada en un iterador?

Iterator HoldingsTableRows = HoldingsTableRows.iterator(); 


    while (HoldingsTableRows.hasNext()) { 

} 

pude obtener el contenido de una variable y si coincide con lo que puedo salir del bucle, pero estoy tratando de evitar la codificación dura un tema específico sobre los nombres de los encabezados ya que si los nombres de los encabezados de la cambian rompería mi aplicación.

ayuda ¡por favor!

Gracias!

Respuesta

26

Todo lo que necesita hacer es llamar .next() una vez antes de iniciar el bucle while.

Iterator HoldingsTableRows = HoldingsTableRows.iterator(); 

//This if statement prevents an exception from being thrown 
//because of an invalid call to .next() 
if (HoldingsTableRows.hasNext()) 
    HoldingsTableRows.next(); 

while (HoldingsTableRows.hasNext()) 
{ 
    //...somecodehere... 
} 
+0

muchas gracias, funciona perfectamente. Creo que esto es una señal de que he estado trabajando demasiado tarde y necesito un descanso. Perdón por molestarte con algo tan fácil. – Lostsoul

3

Llamar a next() una vez para descartar la primera fila.

Iterator HoldingsTableRows = HoldingsTable.iterator(); 

    // discard headers 
    HoldingsTableRows.next(); 
    // now iterate through the rest. 
    while (HoldingsTableRows.hasNext()) { 

} 
Cuestiones relacionadas