objectif
Charger un XML, accéder aux éléments et écrire.
code minimal
import xml.etree.ElementTree as ET
xml = "<root><item id='1'>x</item></root>"
root = ET.fromstring(xml)
print(root.find("item").get("id") == "1") # attendu: True
utilisation
import xml.etree.ElementTree as ET, io
tree = ET.ElementTree(ET.Element("root"))
buf = io.BytesIO(); tree.write(buf, encoding="utf-8", xml_declaration=True)
print(buf.getvalue().startswith(b"<?xml"))
variante(s) utile(s)
import xml.etree.ElementTree as ET
root = ET.fromstring("<a><b>t</b></a>")
print([e.text for e in root.findall(".//b")] == ["t"])
notes
- Attention aux entités externes (XXE) si sources non fiables -> désactivez-les (defaut stdlib OK).
- Pour de gros XML, itérez avec iterparse pour réduire la mémoire.