[VBA] extraire des noeuds d'un gros fichier XML

extraire des noeuds d'un gros fichier XML [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 30-10-2010 à 11:06:28    

Bonjour,
 
Je débute en VBA de Excel 2003 SP2.
 
J'ai un fichier XML de ~1,3Go, je cherche à extraire tel quel certains noeuds (et ces descendant) dans ce gros fichier.
La methode par DOM n'est pas possible (fichier trop gros), auriez vous des conseils/exemples de comment je devrais le faire ?
 
exemples
http://nsa19.casimages.com/img/2010/10/30/101030110308260624.png
 
 
Merci
 
[URL=http://www.hostingpics.net/viewer.php?id=650048exemples.png]


Message édité par mortelrdv le 30-10-2010 à 11:14:43
Reply

Marsh Posté le 30-10-2010 à 11:06:28   

Reply

Marsh Posté le 03-11-2010 à 18:04:33    

(je ne peux pas accéder aux images...)
 
Sans DOM ça va être casse couille.
 
y a des retour a la ligne dans ton fichier ou pas ?
 
En théorie, t'as plus qu'a lire séquentiellement le fichier et détecter l'ouverture de la balise que tu cherche avec InStr()
et puis détecter la fermeture...
 
tu fait quoi de cette extraction ?
elle pèse combien cette extraction ? parceque stocker 1,3 giga dans une chaine de caractère ça peut être rigolo aussi :D

Reply

Marsh Posté le 04-11-2010 à 11:32:54    

je comptais extraire de ce gros fichier ~1Mo.
je me disais que peut être il y avait une solution que la lecture séquentielle en traitant le fichier comme du texte (meme si je ne sais pas comment m'y prendre) :p
Concernant la lecture séquentielle, aurais tu quelque pistes vers quoi m'orrienter ? je suis plutôt débutant.


Message édité par mortelrdv le 04-11-2010 à 11:35:20
Reply

Marsh Posté le 04-11-2010 à 11:44:46    

Citation :


Line Input #, instruction, exemple
Cet exemple utilise l'instruction Line Input # pour lire une ligne dans un fichier séquentiel et l'affecter à une variable. Nous supposons que FICHTEST est un fichier texte comportant quelques lignes de données exemple.
 


Dim TextLine
Open "FICHTEST" For Input As #1   ' Ouvre le fichier.
Do While Not EOF(1)   ' Effectue la boucle jusqu'à la fin du fichier.
   Line Input #1, TextLine      ' Lit la ligne dans la variable.
   Debug.Print TextLine   ' Affiche dans la fenêtre Exécution.
Loop
Close #1   ' Ferme le fichier.
 



Message édité par Xxxaaavvv le 04-11-2010 à 11:45:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed