Bonjour,
J'ai un fichier xml que voici :
Code XML : 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 <?xml version="1.0" encoding="UTF-8"?> <BDDPoint> <point id="1"> <coordonnees x="1.2" y="2.3" z="0.75" > <parametres> <Color Couleur="Blue"/> <size Taille="2"/> <transparency Transparence="0.5"/> <parametres/> </coordonnees> </point> <point id="2"> <coordonnees x="1.5" y="1.3" z="0.0"> <parametres> <Color Couleur="Red"/> <size Taille="3" /> <transparency Transparence="0.2"/> <parametres/> </coordonnees> </point> <point id="3"> <coordonnees x="4" y="3.1" z="1.6"> <parametres> <Color Couleur="Green"/> <size Taille="4" /> <transparency Transparence="0.8"/> <parametres/> </coordonnees> </point> </BDDPoint>
J'essaye de créer une boucle pour récupérer toutes les balises et leurs attributs dans chaque balise "point".
Voici la boucle de mon code :
Cette méthode n'est pas simple et optimisée car à chaque fois il faut que je reboucle sur les balises pour récupérer les autres balises ce qui complexifie vachement la chose... Ce que je souhaite c'est d'avoir une méthode qui boucle sur toutes les balises du Point1, puis du Point2 et ensuite du 3. Or, dans mon code, je boucle d'abord sur le Point pour récupérer l'id, puis ensuite je recréer une autre boucle pour boucler les coordonnées etc...
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 cptPoint = 0 for point in tree.xpath("/BDDPoint/point"): cptPoint = cptPoint + 1 id = point.get("id") cptCoordonnees = 0 for coordonnees in tree.xpath("/BDDPoint/point/coordonnees"): cptCoordonnees = cptCoordonnees + 1 if cptCoordonnees == cptPoint: x = point.get("x") y = point.get("y") z = point.get("z") cptCouleur = 0 cptSize = 0 cptTransparence = 0 for Param in tree.xpath("/BDDPoint/point/coordonnees/parametres/Color"): cptCouleur = cptCouleur + 1 if cptCouleur == cptCoordonnees: color = point.get("Couleur") for Param in tree.xpath("/BDDPoint/point/coordonnees/parametres/size"): cptSize = cptSize + 1 if cptSize == cptCoordonnees: size = point.get("size")
Merci pour votre aide!
Partager