python - lxml: Erzwingen einer bestimmten Reihenfolge für Attribute

Ich habe ein XML-Schreibskript, das XML für ein bestimmtes Drittanbieter-Tool ausgibt.

Ich habe die ursprüngliche XML-Datei als Vorlage verwendet, um sicherzustellen, dass alle richtigen Elemente erstellt werden. Die endgültige XML-Datei sieht jedoch nicht wie das Original aus.

Ich schreibe die Attribute in derselben Reihenfolge, aber lxml schreibt sie in seiner eigenen Reihenfolge.

Ich bin mir nicht sicher, aber ich vermute, dass das Tool für den dritten Teil erwartet, dass Attribute in einer bestimmten Reihenfolge angezeigt werden, und ich möchte dieses Problem beheben, damit ich sehen kann, ob die Attributreihenfolge den Fehler verursacht oder etwas anderes.

Quellelement:

<FileFormat ID="1" Name="Development Signature" PUID="dev/1" Version="1.0" MIMEType="text/x-test-signature"> 

Mein Quellenskript:

sig.fileformat = etree.SubElement(sig.fileformats, "FileFormat", ID = str(db.ID), Name = db.name, PUID="fileSig/{}".format(str(db.ID)), Version = "", MIMEType = "")

Meine resultierende XML:

<FileFormat MIMEType="" PUID="fileSig/19" Version="" Name="Printer Info File" ID="19">

Gibt es eine Möglichkeit, die Reihenfolge, in der sie geschrieben werden, zu beschränken?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage