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 :

parser un fichier xml en python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Par défaut parser un fichier xml en python
    Bonjour à la communauté developpez.com
    Je n'arrive pas a parser une balise qui se situe dans une base de données xml. je vous montre une partie de mon fichier xml :

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
        <groups>
          <group>approved</group>
        </groups>
        <taxonomy>
          <kingdom></kingdom>
          <substructures/>
        </taxonomy>
        <synonyms/>
        <salts>
          <salt>Goserelin acetate</salt>
        </salts>
        <brands>
          <brand>Zoladex</brand>
        </brands>
        <mixtures/>
        <packagers>
          <packager>
            <name>AstraZeneca Inc.</name>
            <url>http://www.astrazeneca.ca</url>
          </packager>
        </packagers>
        <manufacturers>
          <manufacturer generic="false">Astrazeneca uk ltd</manufacturer>
        </manufacturers>
        <prices>
          <price>
            <description>Zoladex 3.6 mg implant syringe</description>
            <cost currency="USD">451.19</cost>
            <unit>syringe</unit>
          </price>
          <price>
            <description>Zoladex 10.8 mg implant syringe</description>
            <cost currency="USD">1380.65</cost>
            <unit>syringe</unit>
          </price>
        </prices>
        <categories>
          <category>Antineoplastic Agents</category>
          <category>Antineoplastic Agents, Hormonal</category>
        </categories>
        <affected-organisms>
          <affected-organism>Humans and other mammals</affected-organism>
        </affected-organisms>
        <dosages>
          <dosage>
            <form>Implant</form>
            <route>Subcutaneous</route>
            <strength></strength>
          </dosage>
        </dosages>
        <atc-codes>
          <atc-code>L02AE03</atc-code>
        </atc-codes>
        <ahfs-codes>
          <ahfs-code>92:00.00</ahfs-code>
          <ahfs-code>68:18.00</ahfs-code>
        </ahfs-codes>
        <patents>
          <patent>
            <number>7118552</number>
            <country>United States</country>
            <approved>2002-04-13</approved>
            <expires>2022-04-13</expires>
          </patent>
          <patent>
            <number>7500964</number>
            <country>United States</country>
            <approved>2001-02-26</approved>
            <expires>2021-02-26</expires>
          </patent>
        </patents>
        <food-interactions/>
        <drug-interactions/>
        <calculated-properties>
          <property>
            <kind>logP</kind>
            <value>0.3</value>
            <source>ALOGPS</source>
          </property>
          <property>
            <kind>logS</kind>
            <value>-4.7</value>
            <source>ALOGPS</source>
          </property>
          <property>
            <kind>Water Solubility</kind>
            <value>2.83e-02 g/l</value>
            <source>ALOGPS</source>
          </property>
          <property>
            <kind>logP</kind>
            <value>-5.2</value>
            <source>ChemAxon</source>
          </property>
          <property>
            <kind>IUPAC Name</kind>
            <value>(2S)-1-[(2S)-2-[(2S)-2-[(2R)-3-(tert-butoxy)-2-[(2S)-2-[(2S)-3-hydroxy-2-[(2S)-2-[(2S)-3-(1H-imidazol-5-yl)-2-{[(2S)-5-oxopyrrolidin-2-yl]formamido}propanamido]-3-(1H-indol-3-yl)propanamido]propanamido]-3-(4-hydroxyphenyl)propanamido]propanamido]-4-methylpentanamido]-5-[(diaminomethylidene)amino]pentanoyl]-N-(carbamoylamino)pyrrolidine-2-carboxamide</value>
            <source>ChemAxon</source>
          </property>
          <property>
            <kind>Molecular Weight</kind>
            <value>1269.4105</value>
            <source>ChemAxon</source>
          </property>
          <property>
            <kind>Monoisotopic Weight</kind>
            <value>1268.641439486</value>
            <source>ChemAxon</source>
          </property>
          <property>
            <kind>SMILES</kind>
            <value>CC(C)C[C@H](NC(=O)[C@@H](COC(C)(C)C)NC(=O)[C@H](CC1=CC=C(O)C=C1)NC(=O)[C@H](CO)NC(=O)[C@H](CC1=CNC2=CC=CC=C12)NC(=O)[C@H](CC1=CN=CN1)NC(=O)[C@@H]1CCC(=O)N1)C(=O)N[C@@H](CCCN=C(N)N)C(=O)N1CCC[C@H]1C(=O)NNC(N)=O</value>
    j'utilise DOM pour parser mon fichier , les autres balises j'arrive à la récupérer sans problemes , mais en ce qui concerne ma blise SMILES c'est a dire plus excatement je veux la valeur de la balise value qui suit SMILES , je vous remercie de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu n'as pas de soucis avec celles là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
          <property>
            <kind>Molecular Weight</kind>
            <value>1269.4105</value>
            <source>ChemAxon</source>
          </property>
          <property>
            <kind>Monoisotopic Weight</kind>
            <value>1268.641439486</value>
            <source>ChemAxon</source>
          </property>
    mais uniquement avec celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          <property>
            <kind>SMILES</kind>
            <value>CC(C)C[C@H](NC(=O)[C@@H](COC(C)(C)C)NC(=O)[C@H](CC1=CC=C(O)C=C1)NC(=O)[C@H](CO)NC(=O)[C@H](CC1=CNC2=CC=CC=C12)NC(=O)[C@H](CC1=CN=CN1)NC(=O)[C@@H]1CCC(=O)N1)C(=O)N[C@@H](CCCN=C(N)N)C(=O)N1CCC[C@H]1C(=O)NNC(N)=O</value>
    ?

    À moins que ton xml ne se termine de la même façon, sans balise </property>, il n'y a pas de raison, c'est la même chose.

    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
     
    import xml.dom.minidom
     
    def getText(nodelist):
        rc = []
        for node in nodelist:
            if node.nodeType == node.TEXT_NODE:
                rc.append(node.data)
        return ''.join(rc)
     
    dom = xml.dom.minidom.parse("chem.xml")
    properties = dom.getElementsByTagName("property")
    for p in properties:
        knode = p.getElementsByTagName("kind")[0]
        vnode = p.getElementsByTagName("value")[0]
        print "%s: %s" %(getText(knode.childNodes), getText(vnode.childNodes))
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Molecular Weight: 1269.4105
    Monoisotopic Weight: 1268.641439486
    SMILES: CC(C)C[C@H](NC(=O)[C@@H](COC(C)(C)C)NC(=O)[C@H](CC1=CC=C(O)C=C1)NC(=O)[C@H](CO)NC(=O)[C@H](CC1=CNC2=CC=CC=C12)NC(=O)[C@H](CC1=CN=CN1)NC(=O)[C@@H]1CCC(=O)N1)C(=O)N[C@@H](CCCN=C(N)N)C(=O)N1CCC[C@H]1C(=O)NNC(N)=O

Discussions similaires

  1. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  2. [xslt] Parser 2 fichiers XML
    Par malekms dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/12/2005, 12h22
  3. Parser un fichier XML
    Par Charlinecha dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 11/07/2005, 17h18
  4. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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