Sarebbe bello sapere cosa intendete effettivamente fare con XML. Il modo in cui viene analizzato dipende molto dall'elaborazione che è necessario eseguire, nonché dalle dimensioni.
Se si tratta di un'attività una tantum, ho iniziato in passato scoprendo la struttura XML prima di fare qualsiasi altra cosa. Il mio DTDGenerator (vedi saxon.sf.net) è stato scritto per questo scopo molto tempo fa e fa ancora il lavoro, ora ci sono altri strumenti disponibili ma non so se eseguono l'elaborazione in streaming, che è un prerequisito qui.
È possibile scrivere un'applicazione che elabora i dati utilizzando un parser in streaming pull o push (SAX o StAX). Quanto è facile dipende da quanta elaborazione devi eseguire e da quanto stato devi mantenere, cosa che non ci hai detto. In alternativa puoi provare l'elaborazione XSLT in streaming, disponibile in Saxon-EE.
fonte
2013-03-12 18:40:46
Per i file di grandi dimensioni, utilizzare sempre un parser di tiro come XMLReader; prova a caricare 40 GB di file in memoria per SimpleXML. –
dai post correlati: http://stackoverflow.com/questions/911663/parsing-huge-xml-files-in-php?rq=1 – hexblot
40 GB? Wow, ho avuto problemi con un file xml da 700 Mb su un mac os x machine. –