In PHP kun je extreem grote XML-bestanden inlezen met de XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Extreem grote XML-bestanden moeten in een gecomprimeerd formaat op schijf worden opgeslagen. Dit is in ieder geval logisch, aangezien XML-bestanden een hoge compressieverhouding hebben. Bijvoorbeeld gezipt als large.xml.gz
.
PHP ondersteunt dat vrij goed met XMLReader
via de compressie-wrappers
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
De XMLReader
stelt u in staat om "alleen" op het huidige element te werken. Dat betekent dat het alleen voorwaarts is. Als u de parserstatus wilt behouden, moet u deze zelf bouwen.
Ik vind het vaak handig om de basisbewegingen in een reeks iterators te stoppen die weten hoe ze moeten werken op XMLReader
zoals itereren door alleen elementen of onderliggende elementen. U vindt dit beschreven in XML ontleden met PHP en XMLReader
.
Zie ook: