Bonjour tout le monde,
Je dispose d'un fichier XML assez énorme (1.5 Mo) et je voudrais savoir quelles sont les pistes à suivre pour le lire le plus rapidement possible ? par exemple, quelle méthode utiliser pour ne lire qu'un type de noeud ?
Bonjour tout le monde,
Je dispose d'un fichier XML assez énorme (1.5 Mo) et je voudrais savoir quelles sont les pistes à suivre pour le lire le plus rapidement possible ? par exemple, quelle méthode utiliser pour ne lire qu'un type de noeud ?
Plusieurs méthodes dont celle-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 XmlDocument monXml = new XmlDocument(); try { monXml.Load("test01.xml"); Console.WriteLine("XML Chargé"); } catch (Exception ex) { Console.WriteLine("erreur {0}", ex.Message); } XmlNode objNode; XmlNode root = monXml.DocumentElement; objNode = root.SelectSingleNode("//node[@value='03']");
Il s'agit d'une requête XPath: http://jfdeterme.developpez.com/tuto...rp/tuto_xpath/
Ok, merci à vous deux
Re bonjour tout le monde,
J'ai besoin de vos lumières:
Je travaille toujours avec le même fichier xml dont la structure est en gros
Et bcp, bcp de départements, et plusieurs départements par projet.Département
---->Name
---->Nombre employés
---->Projet
---->Chef d'équipe
Au final, je voudrais récupérer quelque chose, un tableau, une liste, je ne sais pas encore qui ressemble à ça;
Etc...pour l'instant je compte fonctionner ainsi: à chaque fois que je rencontre un noeud projet, je récupère les noeuds enfant du noeud parent,. Si le projet n'existe pas dans ma liste, faire un Add. Sinon, rajouter au projet le département. Peut-être y a t-il un meilleur algo pour arriver à ce résultat, sachant qu'il y a énormément, énormément de données à traiter (le traitement doit être rapide) ?Projet --> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
Projet --> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
Projet --> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
---------> Département --> Name
-------------------------> Nombre employés
-------------------------> Chef d'équipe
Aussi, je ne suis pas certain de la meilleure structure à utiliser pour récupérer ces données, car il peut y avoir plusieurs profondeurs en fonction du département, par exemple:
J'espère que ma question est claireProjet --> Département --> Nombre d'employés --> Noms des employés --> Moyenne d'âge
---------> Département --> Nombre d'employés --> Age des employés
salut
tu peux aussi utiliser :
xsd.exe (outil du framework)
ainsi tu auras :
tonXml.Xml ==> tonXml.xsd ==> TonXML.cs
En 10 secondes, tu auras la classe qui serait remplie par une désérialisation xml de ton code (classe XmlSerializer).
Et après, tu peux travailler sur les données, plus que sur comment les récupérer...
Enfin, perso, je ne me pose plus la question.. Fichier xml == Reflexe automatique XSD, génération de classes automatiques et après, travail sur le fonctionnel
Mais bon... c une façon de travailler.. rapide et efficace.. mais pas unique !
Salut,
C'est tout petit ça. Mes programmes doivent en traiter de 60 ou 80Mo.
Certainement pas un XmlDocument!! Le XmlDoc charge la totalité du fichier en mémoire avant de le traiter... Pour un petit fichier de 1.5Mo c'est sans douleur, pour les autres bonjour!
Il n'y a rien de plus rapide qu'un XmlReader.
Tous les fichiers Xml ne passent pas avec XSD. De plus il n'est pas forcement utile de générer des classes monstrueuses alors qu'on a juste besoin de lire un élément et deux attributs.Enfin, perso, je ne me pose plus la question.. Fichier xml == Reflexe automatique XSD, génération de classes automatiques et après, travail sur le fonctionnel
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager