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

Python Discussion :

extraire les différences entre deux fichiers xml en python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut extraire les différences entre deux fichiers xml en python
    Bonjour,
    je cherche à parser deux fichiers xml , les comparer et mettre les différences dans un fichier xml résultat en python
    pour faire le parsing j'ai commencé par utiliser dom.minidom , les deux fichiers sont presque identiques (meme structure ) a quelques différences près au niveau des balises et du contenu
    est-ce que le fait d'utiliser minidom pour parcourir les fichiers (de grande taille) est une bonne méthode ou faut-il utiliser une autre méthode comme une bibliotheque prédéfinie pour extraire les différences et les mettre dans un troisieme fichier xml?

    merci d'avance

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Pourquoi ne pas chercher avec votre moteur de recherche préféré des modules déjà existants en python ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    si je pose la question c'est que j'ai pas trouvé ce que je cherches ou plutot je ne sait pas quel methode adapter dom ou autre
    merci quand meme

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Tu peux essayer avec BeautifulSoup.
    Je devrais pouvoir extraire sans trop de problèmes différentes balises pour les comparer ensuite....

    Regarde ce lien:
    http://www.crummy.com/software/Beaut...mentation.html

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par princessita Voir le message
    est-ce que le fait d'utiliser minidom pour parcourir les fichiers (de grande taille) est une bonne méthode ou faut-il utiliser une autre méthode comme une bibliothèque prédéfinie pour extraire les différences et les mettre dans un troisieme fichier xml?
    Lorsque les fichiers sont gros, on préfère utiliser un parseur SAX.
    L'avantage est qu'il n'est pas nécessaire de garder l'arbre - ce que devient le document XML lorsqu'il est charge en mémoire -.
    Dans votre cas:
    Citation Envoyé par princessita Voir le message
    je cherche à parser deux fichiers xml , les comparer et mettre les différences dans un fichier xml résultat en python pour faire le parsing j'ai commencé par utiliser dom.minidom , les deux fichiers sont presque identiques (meme structure ) a quelques différences près au niveau des balises et du contenu.
    c'est d'abord un inconvénient: savoir si l’élément courant est dans l'autre fichier, puis faire la différence,... se traduira par balayer tout le fichier et pour chaque élément.

    Mais c'est un détail, car en fait, c'est pas facile a faire dans le cas général et même pour de petits fichiers.
    Que signifie "comparer" des éléments aussi composites que peuvent être les choses XML?

    Exemple: un élément XML peut contenir une liste d’éléments A, B, C. Dans l'autre fichier cette liste pourra être rangée B, C, A. C'est pareil ou différent? En fait ça dépend du schéma. Si c’était de vraies bases de données, impossible de ne pas avoir de schéma - même mal construit, il a le mérite d'exister -. A partir de la on a des tables et les éléments sont des lignes. Chaque table a une ou plusieurs clés candidates. C'est ce qui permettra de construire une relation d’identité.
    Prendre un A dans le 1er fichier pour le comparer a tous les éléments du second n'a pas de sens. On comparera certains attributs avec ceux de l’élément qui aura même nom, même numéro, ...

    A défaut de solution générale, il faut construire une solution adaptée a un cas particulier: le votre.
    Mais vous avez probablement déjà résolu toutes ces questions.
    Il vous manque juste l'outil a 2 balles pour coder le truc fissa en quelques lignes de Python.

    Pour parser un fichier XML, le module Python a privilégier est xml.etree.ElementTree.
    dom, minidom et beautifulsoup sont a réserver aux fichiers HTML.
    Le module sax est préférable pour les gros fichiers.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/07/2011, 17h25
  2. extraire la différence entre deux larges fichiers
    Par gwissem dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 11/12/2008, 16h09
  3. Outils sur les différences entre deux fichiers XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 19
    Dernier message: 21/07/2008, 15h21
  4. Réponses: 4
    Dernier message: 16/04/2008, 11h12
  5. lister les différences entre 2 fichiers XML
    Par st20085 dans le forum Général Python
    Réponses: 1
    Dernier message: 14/12/2007, 11h48

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