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 :

débutante sax python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de trin86
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 171
    Par défaut débutante sax python


    Voilà je voudrais juste faire un simple parser xml avec sax pas machin tree (j'ai pas le choix).

    mais quand j'exécute mmon code ça donne aucun résultat .
    voici mon code :
    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
     
     
    from xml.sax import make_parser
    from xml.sax.handler import ContentHandler
     
    class BasketBallHandler(ContentHandler):
     
     def __init__ (self, searchTerm):
       self.searchTerm= searchTerm;
       self.isPointsElement, self.isReboundsElement = 0, 0;
     
     def startElement(self, name, attrs):
     
       if name == 'player':     
         self.playerName = attrs.get('name',"")
         self.playerAge = attrs.get('age',"")
         self.playerHeight = attrs.get('height',"")
       elif name == 'points':
         self.isPointsElement= 1;
         self.playerPoints = "";
       elif name == 'rebounds':
         self.isReboundsElement = 1;
         self.playerRebounds = "";
       return
     
     def characters (self, ch):
       if self.isPointsElement== 1:
         self.playerPoints += ch
       if self.isReboundsElement == 1:
         self.playerRebounds += ch
     
     def endElement(self, name):
       if name == 'points':
         self.isPointsElement= 0
       if name == 'rebounds':
         self.inPlayersContent = 0
       if name == 'player' and self.searchTerm== self.playerName :
           print 'Statistics for player:' , self.playerName, '(age:', self.playerAge , 'height' , self.playerHeight , ")"
           print 'Match average:', self.playerPoints , 'points,' , self.playerRebounds, 'rebounds'
     
    def main():
     searchTerm= 'player'
     parser = make_parser()   
     curHandler = BasketBallHandler(searchTerm)
     parser.setContentHandler(curHandler)
     parser.parse(open('playerStats.xml'))
     
    if __name__ == "__main__":
     main()
    mon fichier xml est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <team>
      <player name='Mick Fowler' age='27' height='1.96m'>
        <points>17.1</points>
        <rebounds>6.4</rebounds>
      </player>
      <player name='Ivan Ivanovic' age='29' height='2.04m'>
        <points>15.5</points>
        <rebounds>7.8</rebounds>
      </player>
    </team>
    merci énormément d'avance!


  2. #2
    Membre très actif

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Par défaut
    Bonjour,

    Tout se passe sur la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       if name == 'player' and self.searchTerm== self.playerName :
    self.searchTerm vaut "player"
    et self.playerName vaut "Mick Fowler"

    Le if n'est jamais vrai et ton programme n'affiche rien. Sinon ça a l'air OK.

    Didier

  3. #3
    Membre confirmé Avatar de trin86
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 171
    Par défaut
    ça marche j'ai carrément enlevé la contradiction merci merci merci so much!!!
    à bientot

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2014, 14h51
  2. Pb boucle while (débutant sous python)
    Par rocketter dans le forum Général Python
    Réponses: 4
    Dernier message: 11/03/2014, 08h34
  3. débutant en python
    Par yveshnzagt dans le forum Général Python
    Réponses: 5
    Dernier message: 06/11/2013, 13h51
  4. Débutant : Delphi, Python ou Java ?
    Par Joubarbe dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 11/08/2008, 12h26
  5. Débutant en Python et GUI
    Par Jazzbass dans le forum GUI
    Réponses: 9
    Dernier message: 17/07/2007, 18h20

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