Mysql
 sql >> Base de données >  >> RDS >> Mysql

Analyser des fichiers XML extrêmement volumineux en php

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 :