Bonjour,

je découvre et j'apprends lxml et j'aimerais traiter un fichier xml.

Si une balise n'est pas présente dans le flux, je dois extraire certaines données.

La section du flux à traiter est de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<balise>
----<balise1> Val 1 </balise1>
----<balise2> Val 2 </balise2>
----<balise3> Val 3 </balise3>
----<balise4> Val 4 </balise4>
</balise>
Si balise4 n'est pas présente dans le flux, je dois extraire balise1, balise2, balise3. Je n'y arrive pas.

Début de code python :
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
 
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
try:
    from lxml import etree
    tree = etree.parse("fichier.xml")
    contenuBalise = tree.xpath("/Balise")
    compteur = 0
    for cB in contenuBalise: # boucle sur <Balise>
        compteur += 1
        # Ici, j'aimerais mettre mon test. Si je ne trouve pas de balise4 dans cB, alors extraction. Mais je bloque
    print("Nb : " + str(compteur))
except ImportError:
    print("Mince lxml import ne fonctione pas")
Merci pour vos pistes et retour.

@+ tard