Il comandoxmlstarlet sel su file di grandi dimensioni
$ xmlstarlet sel -t -c "/collection/record" file.xml
sembra per caricare l'intero file in memoria, prima di applicare la data espressione XPath. Questo non è utilizzabile per file XML di grandi dimensioni.
xmlstarlet
fornisce una modalità di streaming per estrarre i sottoelementi da un grande file XML (100G +)?
si potrebbe anche prendere in considerazione un sistema di database come XBase o esistenti che offrono XQuery (un superset di XPath) sui dati XML. –
@ MartininHonnen Grazie, sono un po 'titubante nell'introdurre un componente aggiuntivo. Alla fine ho solo bisogno di selezionare parti di un file XML per l'elaborazione successiva, senza query avanzate. – miku
L'utilizzo del database xml sarebbe interessante se si eseguono ripetutamente le stesse operazioni e spesso. Il database XML ti farebbe risparmiare tempo per analizzare e cercare in un albero analizzato in xml: l'analisi sarebbe fatta solo una volta che si rovina l'importazione e si possono definire indici aggiuntivi. Detto questo, non è facile o immediato selezionare o modificare tale database poiché xml non è stato progettato per scopi di database. – marbu