Bonsoir,
J'ai un souci avec mon programme qui est censé tester la présence de balises. Voici le document 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
<?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>
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
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)
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
  File "CountBalisesA.py", line 33, in <module>
    for font in balisea.iter('Font'):
AttributeError: 'list' object has no attribute 'iter'
D'où vient le problème?
Merci!