Bonjour,

je dois modifier les valeurs de certaines balises XML afin d'anonymiser celle-ci.

Le XML a une structure sous cette forme :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<Element item="zone1">
    <Simple>
	<Cle>NomZone1</Cle>
	<Val>Toto</Val>
   </Simple>
J'ai essayé en utilisant xml.etree et en faisant une recherche via findall, mais je n'arrive pas à avoir le résultat souhaité.
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
 
tree = ET.parse(fic_xml)
for e in tree.findall('.//Element[@item="zone1"]'):
    # On recherche tous les éléments <Simple>
    s = e.findall('Simple')
    # On boucle dessus pour récupérer les cles
    for cles in s:
        cle = cles.find('Cle')  # le fils
        # On met les clés dans une liste. Utile pour récupérer des données par la suite.
        listCle.append(cle.text)
        # On boucle dessus pour récupérer les valeurs
        for vals in s:
            val = vals.find('Val')
            # On met les valeurs dans une liste. Utile pour récupérer des données par la suite.
            listVal.append(val.text)
            if cle.text == "NomZone1":
                print "otot"
                val.text = val.text[0:1] + genNombre12() + genNombre2()
            if cle.text == "NomZone2":
                #print listVal[i]
                val.text = genLettres(val.text)
Avec ce code, il modifie la valeur pour tous les VAL et pas uniquement pour celui testé dans le IF.

Existe t'il un moyen de lire le XML et si je tombe sur une balise qui doit-être modifiée, alors j'exécute ma fonction d'anonymisation.

Merci pour vos retours / pistes.

Bonne journée.

Cdt,