lxml tester si une balise existe
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:
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:
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