Ich verwende Xsl-Datei, um mehrere XML-Dateien zusammenzuführen. Die Anzahl der Dateien beträgt ungefähr 100 und jede Datei hat 4000 Knoten. Das Beispiel XML- und XSL finden Sie hier in diesem SO questionBeschleunigung der Zusammenführung mehrerer XML-Dateien in Python
Mein xmlmerge.py ist wie folgt:
import lxml.etree as ET
import argparse
import os
ap = argparse.ArgumentParser()
ap.add_argument("-x", "--xmlreffile", required=True, help="Path to list of xmls")
ap.add_argument("-s", "--xslfile", required=True, help="Path to the xslfile")
args = vars(ap.parse_args())
dom = ET.parse(args["xmlreffile"])
xslt = ET.parse(args["xslfile"])
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(ET.tostring(newdom, pretty_print=True))
ich die Ausgabe der Python zu einer XML-Datei zu schreiben ... so meinen Code ausführen, um die python-Skript ist wie folgt:
python xmlmerge.py --xmlreffile ~/Documents/listofxmls.xml --xslfile ~/Documents/xslfile.xsl
Für 100 Dateien, wenn ich die Ausgabe auf einer Konsole zu drucken, es jedoch rund 120 Minuten dauert, wenn ich versuche,
die gleiche Leistung in einer xML-Datei zu speichern 10python xmlmerge.py --xmlreffile ~/Documents/listofxmls.xml --xslfile ~/Documents/xslfile.xsl >> ~/Documents/mergedxml.xml
Das dauert etwa 3 Tage, aber die Zusammenführung ist noch nicht vorbei. Ich war mir nicht sicher, ob die Maschine aufgehängt wurde und daher mit nur 8 Dateien auf einer anderen Maschine ausprobiert wurde, und es hatte mehr als 4 Stunden gedauert, aber die Zusammenführung ist noch nicht abgeschlossen. Ich weiß nicht, warum es so viel Zeit in Anspruch nimmt, wenn ich in die Datei schreibe, aber nicht, wenn ich auf die Konsole drucke. Kann mich jemand führen?
Ich benutze Ubuntu 14.04, Python 2.7.