Ich arbeite mit XML-Dateien, die bis zu 10000 Ereignisse in ihnen jeweils mit etwa 30 Zeilen haben. So könnte jede XML-Datei 300000 Zeilen haben. Ich möchte die XML-Validierung in meinen Pre-Processing-Prozess integrieren und frage mich, welche XML-Validierungsoptionen auf einer Linux-Plattform am schnellsten verfügbar sind. Zum Auftakt mit I als Prüfung analysiert xmllint und festgestellt, dass die 10000 Ereignisdateien nahmen bis zu 1 Sekunde (mit dem ersten einer satten 5 Sekunden unter):Was ist der schnellste XML-Validator für Linux-Plattform
bash$ for file in `ls xml*xml`; do echo "checking $file of event length `grep '<event ' $file | wc -l`"; time xmllint --noout $file; result=`echo $?`; if [[ "$result" == "0" ]]; then echo "$file : valid"; else echo "$file : invalid returned $result"; fi; done
checking xmlEventLog_2010-03-23T06:31:49_PFS_1_2.xml of event length 810
real 0m0.251s
user 0m0.036s
sys 0m0.020s
xmlEventLog_2010-03-23T06:31:49_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T06:42:36_PFS_1_1.xml of event length 10001
real 0m5.363s
user 0m0.564s
sys 0m0.292s
xmlEventLog_2010-03-23T06:42:36_PFS_1_1.xml : valid
checking xmlEventLog_2010-03-23T07:27:36_PFS_1_2.xml of event length 10000
real 0m1.303s
user 0m0.732s
sys 0m0.232s
xmlEventLog_2010-03-23T07:27:36_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T07:54:42_PFW_1_1.xml of event length 990
real 0m0.098s
user 0m0.072s
sys 0m0.024s
xmlEventLog_2010-03-23T07:54:42_PFW_1_1.xml : valid
checking xmlEventLog_2010-03-23T08:10:32_PFS_1_2.xml of event length 10000
real 0m0.971s
user 0m0.712s
sys 0m0.240s
xmlEventLog_2010-03-23T08:10:32_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T08:56:57_PFS_1_2.xml of event length 10000
real 0m1.252s
user 0m0.724s
sys 0m0.184s
xmlEventLog_2010-03-23T08:56:57_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T09:26:10_PFS_1_2.xml of event length 10000
real 0m0.920s
user 0m0.644s
sys 0m0.260s
xmlEventLog_2010-03-23T09:26:10_PFS_1_2.xml : valid
Hat jemand schneller xml Validatoren, die ich verwenden könnte um das zu erreichen?
A
Suchen Sie tatsächlich verwendet, um die XML-Validierung (wie in sicherstellen, dass es zu einer DTD entspricht) oder einfach nur prüfen, ob es gut gebildet? Von der Befehlszeile aus sieht es so aus, als ob du Letzteres tust. Wenn Sie etwas schneller als libxml2 suchen, werfen Sie einen Blick auf AsmXml (http://tibizein.net/asm-xml/index.html) oder RapidXml (http://rapidxml.sourceforge.net/). – Dmitri
Bonus Tipp: Bash 'for ... in' nimmt Datei-Globs (also keine Notwendigkeit,' ls' auszuführen): 'für Datei in xml * xml' funktioniert gut. – Dmitri
nur auf der Suche nach gut gebildet wirklich. Danke für den Tipp auf Datei-Globs und ich werde asmxml und rapidxml betrachten. thx – amadain