Error al leer XML de gran volumen con SAX
He hecho una implementación con SAX para leer un fichero de 35000 registros, con 4 o 5 campos cada registro. Tras varias verificaciones he comprobado que se producen unos 70 errores en una extracción de este tipo. El error consiste en que algunos registros al azar presentan errores de lectura de algún campo. Dos de estos campos son de longitud fija, 4 y 16 caracteres de tipo texto, y durante el proceso de lectura del xml en ocasiones se leen menos caracteres, produciéndose el error. Compruebo manualmente los registros afectados verificando que la información en el xml es correcta. Cuendo exploto un fichero de menor volumen (entre 500 - 1000 registros) no ocurre ningún tipo de error. Si alguien pudiera ayudarme le estaría muy agradecido. Un saludo a todos y gracias de antemano
No entiendo del todo bien lo que te pasa. Aunque en un curso de XML que acabo de impartir, nos advirtieron de que SAX, en la especificación no asegura para el evento
public void characters(char[] ch, int start, int end){
}
se lea toda la información de golpe, es decir
<loquesea> esto no tiene porque leerse de una sóla vez </loquesea>
Normalmente se leerá de una sola tacada, aunque para ficheros grandes pudiera no ser así. E incocarse varias veces a characters().
Quizás sea ese tu problema, guarda la información en un StringBuffer, hasta que estes seguro de que se leyo por completo
public void characters(char[] ch, int start, int end){
}
se lea toda la información de golpe, es decir
<loquesea> esto no tiene porque leerse de una sóla vez </loquesea>
Normalmente se leerá de una sola tacada, aunque para ficheros grandes pudiera no ser así. E incocarse varias veces a characters().
Quizás sea ese tu problema, guarda la información en un StringBuffer, hasta que estes seguro de que se leyo por completo
