Python 3.8.2
xml.etree.ElementTree --- ElementTree XML API
À partir du fichier
import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()
À partir d'une chaîne
root = ET.fromstring(country_data_as_string)
Recherche uniquement * éléments enfants directs * de l'élément courant par balise
#La liste est retournée
list = root.findall('country'):
Rechercher uniquement le premier élément trouvé par tag
elem = root.find('country'):
Recherche par expression XPath
root.findall("./country/neighbor")
Accéder au contenu
rank = country.find('rank').text
Attributs d'accès
#Soit
country.get('name')
country.attrib['name']
elem = ET.SubElement(root,'country')
elem = ET.SubElement(root,'country', attrib={'name':'Liechtenstein'})
>>> for country in root.findall('country'):
... # using root.findall() to avoid removal during traversal
... rank = int(country.find('rank').text)
... if rank > 50:
... root.remove(country)
...
Sortie vers sys.stdout
ET.dump(root)
Sortie dans un fichier
tree = ET.ElementTree(root)
tree.write('filename', encoding="utf-8", xml_declaration=True)
Sortie dans un fichier avec sauts de ligne
import xml.dom.minidom as md
document = md.parseString(ET.tostring(root, 'utf-8'))
with open(fname,'w') as f:
document.writexml(f, encoding='utf-8', newl='\n', indent='', addindent=' ')
Recommended Posts