Bonsoir,
J'ai un souci avec mon programme qui est censé tester la présence de balises. Voici le document XML:
Mon programme parvient à tester la présence des balises, mais il ne me repère ensuite que le première balise <a> de chaque <test>:
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 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root> <test> <Cell> <Data Type="Number">1</Data> </Cell> <Cell ssStyleID="s181"> <Data Type="String">perso A</Data> </Cell> <Cell> <ssData> <a><Font>et</Font></a> <children type="me" value="3"/> </ssData> </Cell> </test> <test> <Cell> <Data Type="Number">2</Data> </Cell> <Cell> <Data Type="String">perso B</Data> </Cell> <Cell> <ssData> <children type="me"/> </ssData> </Cell> </test> <test> <Cell> <Data Type="Number">3</Data> </Cell> <Cell> <Data Type="String">perso A</Data> </Cell> <Cell><ssData> <a><Font>Small</Font></a> <a><Font>mais</Font></a> <children type="me" value="3"/></ssData> </Cell> </test> </root>
J'ai essayé de modifier balisea = ssdata.find('a') en balisea = ssdata.findall('a'), mais ça m'affiche en sortie du programme:
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 re import sys import xml.etree.ElementTree as ET fichier= ("TestPrésence.xml") tree = ET.parse(fichier) root = tree.getroot() for test in root.findall(".//test"): for ssdata in test.iter('ssData'): balisea = ssdata.find('a') if balisea is None: print ("mot:", "NA") continue for font in balisea.iter('Font'): print ("mot:", font.text)
D'où vient le problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3File "CountBalisesA.py", line 33, in <module> for font in balisea.iter('Font'): AttributeError: 'list' object has no attribute 'iter'
Merci!
Partager