In PHP, puoi leggere file XML di grandi dimensioni con XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
I file XML estremamente grandi devono essere archiviati in un formato compresso su disco. Almeno questo ha senso poiché i file XML hanno un rapporto di compressione elevato. Ad esempio gzippato come large.xml.gz
.
PHP lo supporta abbastanza bene con XMLReader
tramite i wrapper di compressione
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
Il XMLReader
permette di operare "solo" sull'elemento corrente. Ciò significa che è solo in avanti. Se devi mantenere lo stato del parser, devi crearlo da solo.
Spesso trovo utile racchiudere i movimenti di base in una serie di iteratori che sanno come operare su XMLReader
come l'iterazione di elementi o solo elementi figlio. Lo trovi descritto in Analizza XML con PHP e XMLReader
.
Vedi anche: