Nonstandard-Attributnamen in xml.etree.ElementTree
Verfasst: Montag 27. Februar 2012, 18:22
Die Methoden xml.etree.ElementTree.Element und .SubElement haben in etwa folgende Signaturen:
Nun muss ich zuweilen XML-Dokumente erstellen mit Attributnamen, die nicht die Form eines zulässigen Python-Bezeichners haben, zum Beispiel "xmlns:xlink" oder "stroke-width" oder "from". Wie kriege ich das hin?
Die einzige Vorgehensweise die mir einfällt ist, diese Attribute zunächst einmal anders zu nennen (zum Beispiel "xmins_xlink" und "stroke_width" und "from_"), und in einem zweiten Durchlauf die gesamte XML-Datei durchzuscannen und die falschbenannten Attribute umzubenennen. Aber das kommt mir unelegant und fehleranfällig vor (es könnte versehentlich mehr umbenannt werden als erwünscht). Geht es vielleicht auch einfacher und sicherer?
Code: Alles auswählen
import xml.etree.ElementTree as ET
el = ET.Element(elementname, attributname1="wert1",attributname2="wert2",...)
sel = ET.SubElement(vaterelementname,elementname, attributname1="wert1",attributname2="wert2",...)
Nun muss ich zuweilen XML-Dokumente erstellen mit Attributnamen, die nicht die Form eines zulässigen Python-Bezeichners haben, zum Beispiel "xmlns:xlink" oder "stroke-width" oder "from". Wie kriege ich das hin?
Die einzige Vorgehensweise die mir einfällt ist, diese Attribute zunächst einmal anders zu nennen (zum Beispiel "xmins_xlink" und "stroke_width" und "from_"), und in einem zweiten Durchlauf die gesamte XML-Datei durchzuscannen und die falschbenannten Attribute umzubenennen. Aber das kommt mir unelegant und fehleranfällig vor (es könnte versehentlich mehr umbenannt werden als erwünscht). Geht es vielleicht auch einfacher und sicherer?