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

Réseau/Web Python Discussion :

XML / PYTHON


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut XML / PYTHON
    Bonjour , je bosse sur Debian Lenny, je dois parser un fichier xml contenant des attributs exemple

    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
    16
    17
    18
    19
    20
    <racine>
    	<repertoire nom="toto">
    		<repertoire cache="1" nom=".amsn">
    			<repertoire nom="logs"/>
    			<repertoire nom="plugins"/>
    			<repertoire nom="skins"/>
    			<repertoire nom="smileys"/>
    			<repertoire nom="webcam"/>
    			<repertoire nom="winks">
    				<repertoire nom="cache">
    					<repertoire nom="tmp"/>
    				</repertoire>
    			</repertoire>
    			<fichier extension=".xml" nom="abook"/>
    			<fichier extension=".xml" nom="config"/>
    			<fichier extension=".xml" nom="gconfig"/>
    			<fichier extension=".xml" nom="langlist"/>
    			<fichier extension="" nom="profiles"/>
    			<fichier extension=".xml" nom="states"/>
    		</repertoire></racine>
    J'utilise SPE et donc python pour permettre a terme d'afficher la liste des noms de fichier d'extension et de repertoire. Pour ceci j'ai fait:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    import xml.sax
    import xml.parsers
     
    class RepertoireHandler:
     
        def __init__ (self,searchRepertoire):
            self.searchRepertoire=searchRepertoire
            self.isRepertoireNom, self.isRepertoireCache='',''
     
     
        def descRepertoire(self, nom):
     
            if nom == 'repertoire':     
                self.isRepertoireNom = self.nom
                self.isRepertoireCache = self.cache
                print 'Nom de repertoire:' , self.isRepertoireNom, 'Cache de repertoire:', self.isRepertoireCache
     
     
    class FichierHandler:
     
        def __init__ (self,searchFichier):
            self.searchFichier= searchFichier;
            self.isFichierNom,self.isFichierExtension='',''
     
     
        def descFichier(nom, extension):  
     
            if nom == 'fichier':
                self.isFichierExtension=self.get('extension',"")
                self.isFichierNom =self.get('nom',"");
                print 'Nom de fichier:' , self.fichierNom, 'extension de fichier:', self.fichierExtension
     
            return
     
     
    class main:
     
        def main():
            searchRepertoire='repertoire'
            nom=''
            parser = xml.sax.make_parser()
            RepertoireHandler(searchRepertoire).descRepertoire(nom)
            parser.setContentHandler(repHandler)
            parser.parse(open('/home/gregunix/Essais/Essai3/XmlPerm.xml'))
     
            searchFichier='fichier'
            nom=''
            parser = xml.sax.make_parser()
            FichierHandler(searchFichier).descFichier(nom)
            parser.setContentHandler(ficHandler)
            parser.parse(open('/home/gregunix/Essais/Essai3/XmlPerm.xml'))
     
        if __name__ == "__main__":
            main()
    Pouvez vous me dire ce qui cloche?

    Un grand merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut precision
    Le nom du repertoire est bien gregunix et non toto

  3. #3
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,

    pourrais-tu poster un exemple de ce que tu veux obtenir en sortie, merci
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Pour commencer !!

    Ton appel à main est complètement foireux. 1) l'indentation n'est pas bonne, 2) tu essayes d'appeler une function main() alors que ta fonction main() et dans une classe main().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if __name__ == "__main__":
        m = main()
        m.main()
    Avec cela, au moins le prog se lance, mais il plante plus loin.

    Essayes d'avancer et reviens vers nous quand tu auras un peu plus explorer.

    Je te conseille fortement de lire un tutorial sur python, parce que ce sont là des erreurs vraiment basiques que tu devrais détecter avec un minimum de connaissance de python.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Reslutat souhaité
    Je prends note des reponses qui m'ont été faites donc deja merci pour le main..
    Et je souhaiterais a terme avoir la possibilité de lister soit les fichiers soit les extensions soit les dossiers...
    Donc un truc du genre 1| l'homme qui criait a travers les cheveux .avi
    2| Cascade .avi
    etc...

    ou 1| Musique
    2| Films
    etc...

    ou 1| .avi
    2| .mp3

    Voilà avec bien le chois entre ces listes c'est a dire si 1| alors lister fichier
    si 2| alors lister Dossiers si 3| alors lister extensions

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Rectif
    Je passe par l'API DOM plutot que sax avec minidom plutot que libxml2...
    Cela m'est plus facilement comprehensible même si DOM est plus gourmand en ressources tanpis...J'ai encore des difficultés pour acceder a la partie du .xml désirée mais au moins il est parsé...OUF

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Precision
    Il y a sur developpez.com un excellentissime tutot sur DOM et minidom...
    Merci developpez.com

Discussions similaires

  1. XML (Python vs Java)
    Par autousto dans le forum Général Python
    Réponses: 10
    Dernier message: 21/11/2013, 00h29
  2. Besoin module XML python 3.3
    Par Bayard dans le forum Général Python
    Réponses: 2
    Dernier message: 12/01/2013, 22h56
  3. python e xml problème balise de fermeture
    Par chrix10.2 dans le forum Général Python
    Réponses: 2
    Dernier message: 19/12/2006, 09h55
  4. [python][DOM] alléger un fichier XML
    Par Mireyu_c dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2006, 10h52

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