Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1269 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Parser un fichier XML de 1 giga...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser un fichier XML de 1 giga...

n°833828
JeFFreYY
Posté le 27-08-2004 à 11:11:34  profilanswer
 

Hello tlm :)
 
J'ai le bonheur de devoir parser un fichier XML de 1 giga, c'est la fête :)
Au début du "projet", la taille des fichiers ne devait pas dépasser 10 Mb, j'ai donc décidé d'utiliser JAXB vu la complexité du schéma, ça fonctionnait à merveille :)
 
Aujourd'hui, la taille des fichiers est passée a 1 giga ! et bien sur j'ai qq ptits problemes de OutOfMemory Exception :)
 
Qq1 aurait-il une solution, un example pour parser un tel fichier sachant kil m'est impossible de tout réécrire avec SAX ...
 
Dank u :)

mood
Publicité
Posté le 27-08-2004 à 11:11:34  profilanswer
 

n°834014
alien_nan
Posté le 27-08-2004 à 13:36:40  profilanswer
 

JeFFreYY a écrit :

Hello tlm :)
 
J'ai le bonheur de devoir parser un fichier XML de 1 giga, c'est la fête :)
Au début du "projet", la taille des fichiers ne devait pas dépasser 10 Mb, j'ai donc décidé d'utiliser JAXB vu la complexité du schéma, ça fonctionnait à merveille :)
 
Aujourd'hui, la taille des fichiers est passée a 1 giga ! et bien sur j'ai qq ptits problemes de OutOfMemory Exception :)
 
Qq1 aurait-il une solution, un example pour parser un tel fichier sachant kil m'est impossible de tout réécrire avec SAX ...
 
Dank u :)


 
decoupe ton fichier ?

n°834026
jagstang
Pa Capona ಠ_ಠ
Posté le 27-08-2004 à 13:42:39  profilanswer
 

il ne faut pas utiliser JAXB mais l'autre méthode (je trouve plus son nom) qui ne mets pas en mémoire tout le fichier mais le lis séquentiellement

n°834027
jagstang
Pa Capona ಠ_ಠ
Posté le 27-08-2004 à 13:43:17  profilanswer
 
n°834032
chrisbk
-
Posté le 27-08-2004 à 13:44:29  profilanswer
 

heuh un xml de 1Go, est ce bien raisonable ?  
t'as essayé de l'ouvrir dans notepad, pour voir ? [:boidleau]

n°834036
jagstang
Pa Capona ಠ_ಠ
Posté le 27-08-2004 à 13:45:54  profilanswer
 

oublie. il va vouloir te demander de l'ouvrir avec Wordpad à partir de quelques Mo déjà...

n°834062
ohyes
oooooohYes !
Posté le 27-08-2004 à 13:54:28  profilanswer
 

le seul util qui t'ouvrira efficacement ce fichier est UltraEdit.
Ca m'arrive d'ouvrir des binaires de cette taille avec.
 
Par contre de toute evidence tu dois tout réécrire avec SAX.
Et l'excuse oui au début ca faisait que 10Mo n'en est pas une.  :non: Car on choisit pas SAX ou DOM selon la taille du fichier mais plutot selon l'utilisation.
 
Un parseur Sax, c'est vite fait en plus.

n°834241
benou
Posté le 27-08-2004 à 15:11:35  profilanswer
 

ohyes a écrit :

le seul util qui t'ouvrira efficacement ce fichier est UltraEdit.


et emacs alors ? :o
 

ohyes a écrit :


Par contre de toute evidence tu dois tout réécrire avec SAX.


[:benou_+1]
 

ohyes a écrit :


Et l'excuse oui au début ca faisait que 10Mo n'en est pas une.  :non: Car on choisit pas SAX ou DOM selon la taille du fichier mais plutot selon l'utilisation.


heu nan pas forcément ... le parsing sax faut se le farcir, c'est plutot chiant dans la majorité des cas, alors qu'avec du Dom et des XPATH ca va tout seul !
 
Mais bon, déjà avec des fichiers de 10Mo, j'aurais vraiment BEAUCOUP hésité à partir sur du DOM ou autre système qui reconstruit tout le fichier xml en mémoire.
 

ohyes a écrit :


Un parseur Sax, c'est vite fait en plus.


pkoi le "faire" ?  y en a déjà plein de tous fait.  
 
c'est de base dans le JDK1.4, et sinon y a xerces [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
n°834248
ohyes
oooooohYes !
Posté le 27-08-2004 à 15:17:04  profilanswer
 

[citation=834241,0,8]
pkoi le "faire" ?  y en a déjà plein de tous fait.  
 
c'est de base dans le JDK1.4, et sinon y a xerces [:spamafote][/citation]
 
oui évidemment je parlais pas du parseur en lui même mais de la Factory à construire au dessus du parseur.  :ange:

n°834258
benou
Posté le 27-08-2004 à 15:26:08  profilanswer
 

ohyes a écrit :

oui évidemment je parlais pas du parseur en lui même mais de la Factory à construire au dessus du parseur.  :ange:


quelle factory ? le handle tu veux dire ? Ca ca dépend vraiment de ce que tu en fait de ton fichier XML :/


Message édité par benou le 27-08-2004 à 15:26:34

---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 27-08-2004 à 15:26:08  profilanswer
 

n°836203
JeFFreYY
Posté le 30-08-2004 à 10:46:16  profilanswer
 

Yep,
 
Un fichier de 10méga avec JAXB ne pose aucun problème, 3 minutes de parsing, mémoire peu utilisée, non vraiment, JAXB fonctionne parfaitement pour des fichiers de cette taille.
Et le parsing a la main avec les startElement et EndElement, j'en ai pour pas mal de temps à implémenter tellement la structure du schéma est complexe... Temps que je n'avais pas dés le début :)
J'ai trouvé dans JAXB un moyen de parser une partie du fichier seulement, ce qui me permettrait d'extraire partie par partie, étant donné que j'ai besoin de l'entiereté du fichier. Mais je gagnerais surement bcp de mémoire :)
Si qq1 a déja implémenté cela :)
Merci pour vos réponses !

n°836293
gilou
Modérateur
Modzilla
Posté le 30-08-2004 à 11:25:29  profilanswer
 

Cherches du cote de expat (programme en C qui devrait pouvoir parser des gigas de XML les doigts dans le nez). Il y a peut etre un wrapper pour java (ou alors a toi de l'ecrire :) )  
Sinon, regardes ici: http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/ et ici: http://kobjects.org/auto?self=$c0a [...] f5ad6a6fb3
Ce sont des parsers a faible occupation memoire, puisque prevus pour tourner dans un environnement avec peu de ressources.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°836395
the real m​oins moins
Posté le 30-08-2004 à 12:51:36  profilanswer
 

j'allais le dire, xpp3 :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Parser un fichier XML de 1 giga...

 

Sujets relatifs
Vérifier l'existance d'un fichier xls en VB[libc] tester si un fichier existe
[VC++6] Sauvegarde d'une view en fichier bmp[JAVA] Copie de fichier et destination inexistante
Comment partagé un fichier excel en VBA ??Batch + roulement de fichier
[Web/PHP/XML] Inserer un flux XML dans une page PHPDroits d'accès pour envoie de fichier par formulaire
Parser un ficher XML en C++ ? 
Plus de sujets relatifs à : Parser un fichier XML de 1 giga...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR