Hallo zusammen,
ich erhalte XML Dateien, welche ich automatisiert in mein ERP einlesen möchte.
Leider sind die Knotenpunkte innerhalb eines Files falsch angeordnet.
Originalfile:
<?XML Version="1.0" Encoding="ISO-8859-1"?>
<bestellung>
+ <produkte>
+ <bestellinfo>
</bestellung>
diese Reihenfolge würde ich brauchen
<?XML Version="1.0" Encoding="ISO-8859-1"?>
<bestellung>
+ <bestellinfo>
+ <produkte>
</bestellung>
Kann mir hier jemand helfen?
Danke liebes Team
puwo
XML Konten Element verschieben
Mal schauen.Kann mir hier jemand helfen?
Dir liegt eine wrong_order.xml vor und möchtst diese in correct_order.xml umwandeln ?
ICh glaub ich kann mich erinnern, das erzwingen einen Reihenfolge der childs eines parents ist etwas tricky.
Wenn du die schema datei hast?
Und ein Besipiel xml wäre nicht schlecht.
Zuletzt geändert von pyHoax am Samstag 14. Januar 2017, 15:00, insgesamt 1-mal geändert.
Ich habe erst gestern mit python begonnen, hab mir auch ein Buch bestellt
Habe Windows10 und verwende 3.6
Aus irgendeinem Grund funktioniert auch die IntelliSense nicht wirklich....
Habs mal so probiert, funktioniert natürlich NICHT....
lg
Habe Windows10 und verwende 3.6
Aus irgendeinem Grund funktioniert auch die IntelliSense nicht wirklich....
Habs mal so probiert, funktioniert natürlich NICHT....
Code: Alles auswählen
# Import the os module, for the os.walk function
import os
import xml.etree.ElementTree as ET
from collections import namedtuple
# Set the directory you want to start from
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
#print('Found directory: %s' % dirName)
for fname in fileList:
#print('\t%s' % fname)
tree = ET.parse(fname)
root = tree.getroot()
tree.find(".//bestellung").getchildren().reverse()
tree.write(fname + 'output.xml')
lg
Zuletzt geändert von Anonymous am Samstag 14. Januar 2017, 18:40, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
@puwo1407: was heißt »funktioniert NICHT«? Python liefert einem einen ausführlichen Traceback, an dem man genau erkennen kann, was nicht funktioniert. So kann man jetzt viele Fehlerursachen raten: die Datei existiert nicht, weil sie in einem Unterverzeichnis liegt, die Datei ist keine XML-Datei, weil Du ja alle Dateien durchgehst. Das gesuchte Tag ist das root-Tag, so dass man »find« weglassen kann und direkt »root.getchildren().reverse()« schreiben kann. Oder irgendein anderer Fehler; mit einem frustrierten »funktioniert natürlich NICHT« ist die Fehlersuche aber natürlich frustrierend.