Ich habe eine Sammlung von XML-Dateien, und einige davon sind ziemlich groß (bis zu 50 Millionen Elementknoten). Ich benutze xmllint
, um diese Dateien zu validieren, was dank der Streaming-API sogar für die Großen sehr gut funktioniert.
Ich habe kürzlich gelernt, dass xmllint
auch Kommandozeilen-XPath-Abfragen ausführen kann, was sehr praktisch ist.
Diese XPath-Abfragen funktionieren jedoch nicht für die riesigen XML-Dateien. Ich erhalte nach einiger Zeit eine Nachricht "Killed". Ich habe versucht, die Streaming-API zu aktivieren, aber dies führt nur zu keiner Ausgabe.
%Vor% Gibt es eine Möglichkeit, den Streaming-Modus zu aktivieren, wenn XPath-Abfragen mit xmllint
ausgeführt werden? Gibt es andere / bessere Möglichkeiten, Befehlszeilen-XPath-Abfragen für große XML-Dateien auszuführen?
Wenn Ihre XPath-Ausdrücke sehr einfach sind, versuchen Sie xmlcutty .
Von der Homepage:
xmlcutty ist ein einfaches Werkzeug zum schnellen Herausschneiden von Elementen aus großen XML-Dateien. Da es streamingfähig ist, verwendet es fast keinen Speicher und kann etwa 1G XML pro Minute verarbeiten.