Bonjour,

Je viens de lire un article de Lebrun Jonathan concernant la récupération d'informations texte dans le fichier xml suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<quil>
    <personne>
        <nom>Durant</nom>
        <prenom>Stephan</prenom>
	<adresse>
		<ville>Bruxelles</ville>
	</adresse>
    </personne>
    <personne>
        <nom>Dupont</nom>
        <prenom>Henri</prenom>
	<adresse/>
    </personne>
</quil>
et le programme suivant:

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
class Personne:
    nom = None
    prenom = None
    adresse = Adresse()
    def __init__(self):
        pass
 
class Adresse:
    ville = None
    def __init__(self):
        pass
 
class TransformXmlToPersonnes:
    __currentNode__ = None
    __personneList__ = None
 
    def __init__(self):
        self.readXml()
 
    def readXml(self):
        from xml.dom.minidom import parse
        self.doc = parse('E:/python/samplexml/personnes.xml')
 
    def getRootElement(self):
        if self.__currentNode__ == None:
            self.__currentNode__ = self.doc.documentElement
        return self.__currentNode__
 
    def getPersonnes(self):
        if self.__personneList__ != None:
            return 
        self.__personneList__ = []
        for personnes in self.getRootElement().getElementsByTagName("personne"):
 
            if personnes.nodeType == personnes.ELEMENT_NODE:
                p = Personne()
                try:
                    p.nom = self.getText(personnes.getElementsByTagName("nom")[0])
 
                    p.prenom = self.getText(personnes.getElementsByTagName("prenom")[0])
 
                    p.adresse = self.getAdresse(personnes.getElementsByTagName("adresse")[0])
                except:
                    print 'Un des TAGS suivant est manquents : nom, prenom, adresse'
                self.__personneList__.append(p)
        return self.__personneList__
 
    def getAdresse(self, node):
        adress = Adresse()
        try:
            adress.ville = self.getText(node.getElementsByTagName("ville")[0])
        except:
            adress.ville = None
        return adress
 
    def getText(self, node):
        return node.childNodes[0].nodeValue
j'ai testé se programme qui fonctionne bien mais mais alors ma question est de savoir quel serai les rectifications a faire sur le programme dans le cas ou il y a plusieurs adresse pour une même personne et récupérer une liste de ces adresses personnel de la meme personne.....

merci