Ich versuche, eine große XML-Datei im Speicher zu erstellen, die in ein Blob-Feld in einer ESRI-Feature-Class eingefügt wird.
Ich habe versucht, ElementTree zu verwenden, aber Python ist schließlich abgestürzt. Wahrscheinlich habe ich es nicht auf die beste Weise gemacht. Ein Beispiel für meinen Code (nicht genau):
mit update_cursor auf Feature-Class:
for Zeile in update_cursor:
root = Element("root")
tree = ElementTree(root)
for id in id_list:
if Zeile[0] in id:
equipment = Element("equipment")
root.append(equipment)
attrib1 = Element("attrib1")
equipment.append(attrib1)
attrib1.text = "myattrib1"
attrib2 = Element("attrib2")
equipment.append(attrib2)
attrib2.text = "myattrib2"
....und ungefähr 5 weitere davon an equipment angehängt
xml_daten = ET.tostring(root)
xml_daten in Blob-Feld einfügen
Beispiel für das XML:
Eins
Zwei
Drei
...
Zehn
Eins
Zwei
Drei
...
Zehn
Jetzt ist mir klar, dass dies wahrscheinlich eine ziemlich amateurhafte Art ist, dies zu tun, aber ich bin mir nicht sicher, wie ich diese XML im Speicher am besten aufbauen soll.
Für jede Zeile im update_cursor könnten mehrere "equipment"-Elemente zum root hinzugefügt werden, und jedes "equipment"-Element wird die exakt gleichen untergeordneten Elemente haben, aber mit unterschiedlichen Attributen.
Ich habe das ausgeführt und es gab ungefähr 200 IDs, die mit einer einzelnen Zeile übereinstimmten, also musste es das equipment-Element und alle Kinder des equipment 200 Mal im Speicher erstellen.
Was ist also der beste Weg, um XML im Speicher mit Python und einer Standardbibliothek zu erstellen?