IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[XML] Comparaison de 2 fichiers XML


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AdriM
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut [XML] Comparaison de 2 fichiers XML
    Salut!

    Je cherches à comparer 2 fichiers XML pour prouver qu'ils sont identiques. Malheureusement le fichier géré contient des élements inutiles mais qui ne changent pas le sens du fichier.

    Par exemple:

    <INPUT number="1">
    <LEVEL xmlns="">1</LEVEL>
    <DEBOUNCETIME xmlns="">20</DEBOUNCETIME>
    <OSCILLATIONTIME xmlns="">100</OSCILLATIONTIME>
    <MAXNUMCHANGES xmlns="">2</MAXNUMCHANGES>
    <TYPE xmlns="">0</TYPE>
    <RTDB xmlns="">
    est la même chose que:

    <INPUT number="1">
    <LEVEL>1</LEVEL>
    <DEBOUNCETIME>20</DEBOUNCETIME>
    <OSCILLATIONTIME>100</OSCILLATIONTIME>
    <MAXNUMCHANGES>2</MAXNUMCHANGES>
    <TYPE>0</TYPE>
    <RTDB xmlns="">
    Quelqu'un connait un moyen de créer une methode pour comparer ces deux fichiers?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2007
    Messages : 180
    Par défaut
    Tu peux récupérer le nom des noms.
    Dans un premier temps, tu récupéres le nombre de noeud de ton ou tes fichiers, puis tu peux descendre et comparer le nom des noms.

    Je pense que les xmlns="" ne vont pas ressortir dans la propriété name du noeud.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par AdriM Voir le message
    Salut!

    Je cherches à comparer 2 fichiers XML pour prouver qu'ils sont identiques. Malheureusement le fichier géré contient des élements inutiles mais qui ne changent pas le sens du fichier.
    Sauf qu'il n'y que toi qui sache que cela ne change pas le "sens" du fichier (Comment ? un fichier Xml a un sens et personne il m'a jamais rien dit )

    Donc la seule solution que je vois ici est de lister les noeuds d'un des fichiers un à un, et pour chaque noeud trouvé dans le fichier "A" aller chercher le noeud correspondant dans le fichier "B" et comparer si les infos contenues sont identiques pour toi, après avoir vérifié que les deux fichiers contiennent le même nombre de noeuds. (A vue de nez, ça doit pouvoir se faire sans trop de code avec une implémentation "sioux" des interfaces IEquatable & IEqualityComparer) De cette manière, tu te protéges notamment contre des différences dans l'ordre des noeuds de deux fichiers au contenu sémantiquement identique.

  4. #4
    Membre actif Avatar de clodo13
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    --->Parcours le premiers fichier
    ---->stock toutes les données que tu trouve dans un string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string_total = string_courant+string_total
    ---->Tu fais pareil pour le deuxieme
    ---->Tu compare les deux string_total1 et string_total2
    --->pour cela tu peux utiliser la fonction string.equals je crois


    cordialement
    @+

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par clodo13 Voir le message
    --->Parcours le premiers fichier
    ---->stock toutes les données que tu trouve dans un string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string_total = string_courant+string_total
    ---->Tu fais pareil pour le deuxieme
    ---->Tu compare les deux string_total1 et string_total2
    --->pour cela tu peux utiliser la fonction string.equals je crois
    Sauf que cette méthode peut donner des faux négatifs pour la raison que j'ai mentionnée supra (et aussi des "faux positifs" d'ailleurs, si un noeud avec une valeur X existe dans le fichier A et un attribut avec une valeur identique dans ler fichier B, même si ce cas est beaucoup moins probable).

  6. #6
    Membre actif Avatar de clodo13
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    L'ordre est important ou pas?

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par clodo13 Voir le message
    L'ordre est important ou pas?
    Dans son cas, je ne sais pas, mais a priori il n'y a pas de raison de considérer comme différent un fichier où il y aurait

    <INPUT number="1"/>
    <INPUT number="2"/>

    et un autre où il y aurait

    <INPUT number="2"/>
    <INPUT number="1"/>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/12/2008, 13h38
  2. Réponses: 1
    Dernier message: 22/04/2008, 11h24
  3. Réponses: 3
    Dernier message: 06/08/2007, 03h44
  4. [DOM] (org.w3c.dom) copier un noeud d'un fichier XML dans un autre fichier XML
    Par snoop dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 13/02/2007, 17h22
  5. Importer le contenu un fichier xml dans un autre fichier xml
    Par gedeon555 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/07/2005, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo