Em PHP, você pode ler arquivos XML extremamente grandes com o
XMLReader
:$reader = new XMLReader();
$reader->open($xmlfile);
Arquivos XML extremamente grandes devem ser armazenados em um formato compactado em disco. Pelo menos isso faz sentido, pois os arquivos XML têm uma alta taxa de compactação. Por exemplo, gzipado como
large.xml.gz
. PHP suporta isso muito bem com
XMLReader
através dos empacotadores de compressão
:$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
O
XMLReader
permite operar no elemento atual "somente". Isso significa que é somente para frente. Se você precisar manter o estado do analisador, precisará construí-lo por conta própria. Muitas vezes acho útil envolver os movimentos básicos em um conjunto de iteradores que sabem como operar em
XMLReader
como iterar por meio de elementos ou apenas elementos filho. Você encontra isso descrito em Parse XML with PHP and XMLReader
. Veja também: