from typing import List from lxml import etree if __name__ == "__main__": # Balise principale base = etree.Element("FastDMU", {"version": "2.0"}) # Balise Search system root = etree.Element("SearchSystem") # Deux champs pour Search System root_title = etree.Element("Title") root_mode = etree.Element("Mode") root_title.text = "01" root_mode.text = "AssembliesOnly" root.append(root_title) root.append(root_mode) # Liste des items à ajouter items: List[str] = ["A", "B", "C"] for item in items: # Création des éléments search_item = etree.Element("SearchItem") item_mode = etree.Element("Mode") item_type = etree.Element("Type") item_value = etree.Element("Value") item_field = etree.Element("Field") item_field_name = etree.Element("FieldName") item_title = etree.Element("Title") # Définition du texte item_mode.text = "Add" item_type.text = "Wildcard" item_value.text = item item_field.text = "PARTNUMBER" item_field_name.text = "PARTNUMBER" item_title.text = "Partnumber" # Ajout des éléments au parent search_item.append(item_mode) search_item.append(item_type) search_item.append(item_value) search_item.append(item_field) search_item.append(item_field_name) search_item.append(item_title) # Ajout du searchitem à la balise SearchSystem root.append(search_item) # Ajout de la balise SearchSystem à la balise FastDMU base.append(root) # J'aurais peut-être préféré faire ça avec BeautifulSoup4 # Ou peut-être gagner du temps en convertissant du texte directement # en éléments XML. print(etree.tostring(base, pretty_print=True, xml_declaration=True, encoding="iso8859-1", doctype=""))