Lister les doublons d'un fichier XML

Signaler
Messages postés
2
Date d'inscription
mardi 26 juin 2012
Statut
Membre
Dernière intervention
26 juin 2012
-
Messages postés
2
Date d'inscription
mardi 26 juin 2012
Statut
Membre
Dernière intervention
26 juin 2012
-
Bonjour,

Je réalise un programme qui me permet de lister dans un fichier csv les doublons présent dans un fichier XML.
J'ai commencé à réaliser mon code les résultats en sortie fonctionne, sauf que ma méthode ne doit pas être la bonne car pour parser 90 000 lignes il prend plus d'une heure, et encore le fichier final fera dans les 150 000 lignes, j'ai pas envie que ça prenne la journée...
En gros je crée une list sans doublon et je compare mon fichier XML ligne par ligne et je parse autant de fois que de lignes de la list sans doublons.

Ma question est de savoir si il y a une méthode de tri pour extraire mes doublons sans à devoir à parser mon XML des milliers de fois, je me dis que la fonction "Distinct.count" sort très rapidement le nombre de non doublons alors pourquoi pas les lister tout aussi rapidement ?

Merci

Ps: je débute :D

2 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
48
Bonjour,

Si tu nous montrais ce à quoi ressemble ton fichier XML ? Ce que tu appelles doublon (balise ou valeur) et le code que tu as déjà fait ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
2
Date d'inscription
mardi 26 juin 2012
Statut
Membre
Dernière intervention
26 juin 2012

Ce n'est qu'un extrait mais c'est cette partie du code qui met énormément de temps à traiter (logique vu mon raisonnement :D)

for (i = 0; i < XmlList.Count; i++)
                {
                    
                        foreach (XmlNode terme in NodeTerme)
                        {

                            if (XmlList[i].Equals(terme.Attributes["T"].Value))
                            {
                                count++;
                                valT = terme.Name +": "+ XmlList[i] + ";";
                            }
                        }
                   
                   if (count > 1)
                    {
                       
                        file.WriteLine(valT);
                        count = 0;
                    }
                    valT = null;
                    count = 0;

                }


C'est la valeur de T= que je veux lister si un doublon existe.

<terme T="organisation de la cour administrative d'appel" >
<terme T="composition de la cour administrative d'appel"  />
<terme T="fonctionnement de la cour administrative d'appel"  />
</terme>