lxml
Lecture/Ecriture fichier xml en python
La bibliothèque lxml ne fait pas partie des bib standard.
Il est sonc nécessaire d'installer le module xml.etree.ElementTree.
C'est parti (sur une RedHat Like...) :
# yum install python-lxml
Et hop, c'est fait ;)
Lecture d'un fichier xml :
#!/usr/bin/python -u # -*- coding:utf-8 -*- # #import du module from lxml import etree as ET #nom du fichier a parser tree = ET.parse('mon_fic.xml') #utilisation de la méthode xpath for node in tree.xpath('//group'): print node.tag,' ' , node.text
Liste des options possible de xpath :
- '/comps/group' renvoie tous les noeuds "group" depuis la racine
- '//group' pareil mais dans n'importe quel noeud (prudence...)
- 'comps/group/*' récupère tous les tags inclus dans les noeuds 'group' de 'comps'
- '/comps/group[1] renvoie le premier "group"
- /comps/group[last] renvoie le dernier "group"
- /comps/group[position() <2] récupère les 2 premiers noeud "group".
- '/bibliotheque/livre[annee>=2011]/titre retourne les noeuds "livre" pour lesquels il existe un noeud "anne" ayant une valeure supérieure à 2011 et récupère le titre.
- '//livre/[@lang='fr'] renvoie tous les livres ayant un attribt 'lang' égal à 'fr'
-'//livre/@lang' désigne tous les attributs 'lang' asociés à un noeud "livre"
- '/comps/group | /comps/category' permet de rechercher les noeuds 'group' et 'category' dans comps.
- '/comps/group[contains(., "Python")]' permet de retourner les "group" qui contiennent "Python"