V PHP můžete číst extrémně velké soubory XML pomocí XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Extrémně velké soubory XML by měly být uloženy v komprimovaném formátu na disku. Přinejmenším to dává smysl, protože soubory XML mají vysoký kompresní poměr. Například gzip jako large.xml.gz
.
PHP to docela dobře podporuje s XMLReader
prostřednictvím kompresních obalů
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
XMLReader
umožňuje provozovat „pouze“ aktuální prvek. To znamená, že je pouze dopředný. Pokud potřebujete zachovat stav analyzátoru, musíte si jej vytvořit vlastní.
Často mi přijde užitečné zabalit základní pohyby do sady iterátorů, které vědí, jak pracovat s XMLReader
jako iterování pouze přes prvky nebo podřízené prvky. Najdete to nastíněné v Parse XML pomocí PHP a XMLReader
.
Viz také: