En PHP, vous pouvez lire des fichiers XML extrêmement volumineux avec le XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Les fichiers XML extrêmement volumineux doivent être stockés dans un format compressé sur le disque. Au moins, cela a du sens car les fichiers XML ont un taux de compression élevé. Par exemple gzippé comme large.xml.gz
.
PHP le supporte assez bien avec XMLReader
via les wrappers de compression
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
Le XMLReader
permet d'opérer "uniquement" sur l'élément courant. Cela signifie que c'est vers l'avant uniquement. Si vous avez besoin de conserver l'état de l'analyseur, vous devez le créer vous-même.
Je trouve souvent utile de regrouper les mouvements de base dans un ensemble d'itérateurs qui savent comment fonctionner sur XMLReader
comme itérer à travers des éléments ou des éléments enfants uniquement. Vous trouverez cela décrit dans Parser XML avec PHP et XMLReader
.
Voir aussi :