Wie werden XPath-Abfragen in der Befehlszeile in großen XML-Dateien ausgeführt?

9

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.

%Vor%

Ich habe kürzlich gelernt, dass xmllint auch Kommandozeilen-XPath-Abfragen ausführen kann, was sehr praktisch ist.

%Vor%

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?

    
MRA 18.05.2015, 14:21
quelle

2 Antworten

3

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.

    
gioele 28.10.2016 08:48
quelle
-1

Änderung ulimits könnte funktionieren. Versuchen Sie Folgendes:

%Vor%     
ajslaghu 19.02.2018 12:05
quelle

Tags und Links