ich habe vor langer Zeit in VBA mit dem MSXMLDom eine Schnittstelle geschrieben, die XML-Werkstattdateien einliest,verarbeitet und in einer MsAccess Datenbank ablegt.
Nun sind die Zeiten von Access endlich vorbei und es steht eine neue Lösung ins Haus, die Pythonmodule unterstützt (print("Yeah"))

Ich habe mich also mit ElementTree beschäftigt und sehr schnell festgestellt, dass ich mich sehr bequem im XML bewegen kann, aber das Ergebnis ist anders als erwartet. Während ich in Access beim Zugriff auf
Code: Alles auswählen
childNode.Values
Code: Alles auswählen
dict_values(['81_24629_0'])
Code: Alles auswählen
print(xmlData["TRANS_ID"])
Code: Alles auswählen
print(xmlData['OWNERSHIP'])
KeyError: 'OWNERSHIP'
Code: Alles auswählen
import xml.etree.ElementTree as ET
import psycopg2
import re
conn = psycopg2.connect("dbname='Odoo' user='odoo' password='HierStandGefährliches^^' host='localhost'")
tree = ET.parse("/Import/Eine.xml")
root = tree.getroot()
# tag = detail ; text immer NULL ; attrib z.b. {'BUY_DATE': '2021-04-03'}
for child in root:
for subchild in child:
xmlData = subchild.attrib
print(xmlData) #ergibt eine Liste, die einem Dictonary gleicht aber nicht so nutzbar ist
#child.attrib.keys sind die Spaltennamen, ...values die Werte
#Es handelt sich um ein "Dictonary", ein Schlüsselpaar...Ein hoch, dass ich nur 3 Stunden gebraucht habe das zu kapieren...
#https://www.python-kurs.eu/python3_dictionaries.php <--- für die doofen unter uns :)
#print(thisdict["brand"])
print(xmlData['OWNERSHIP'])
#datei = open('/Export/textdatei.txt', 'a')
#datei.write("\r\n" + (str(subchild.attrib)))
#atei.close()
