J'ai le problème suivant:Parsing gros documents XML en JAVA
J'ai un fichier XML (environ 1 Go), et doivent itérer et vers le bas (non séquentielle, l'un après l'autre) afin pour obtenir les données requises et faire quelques opérations dessus. Initialement, j'ai utilisé le paquet DOM Java, mais évidemment, tout en analysant le fichier XML, la JVM atteint son espace de tas maximum et s'arrête. Afin de surmonter ce problème, l'une des solutions que j'ai trouvées consistait à trouver un autre analyseur qui itère chaque élément dans le XML, puis je stocke son contenu dans une base de données SQLite temporaire sur mon disque dur. Ainsi, le tas de la JVM n'est pas dépassé et, une fois toutes les données remplies, j'ignore le fichier XML et continue mes opérations sur la base de données SQLite temporaire.
Existe-t-il une autre façon de résoudre mon problème?
utilisation JAXB parser xml – Biswajit
Comme d'autres ont dit que vous devez utiliser un analyseur SAX au lieu d'un analyseur DOM, il fera exactement ce dont vous avez besoin. Lisez ceci: http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom – cowls
Si vous ne pouvez pas tenir l'ensemble arbre DOM, vous devez trouver un moyen de faire votre traitement de manière séquentielle. Est-ce possible? Pouvez-vous montrer un XSLT qui fait ce dont vous avez besoin? –