I PHP kan du læse ekstremt store XML-filer ind med XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Ekstremt store XML-filer skal gemmes i et komprimeret format på disken. Det giver i det mindste mening, da XML-filer har et højt komprimeringsforhold. For eksempel gzippet som large.xml.gz
.
PHP understøtter det ret godt med XMLReader
via komprimeringsindpakning
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
XMLReader
giver dig mulighed for "kun" at betjene det aktuelle element. Det betyder, at det kun er fremadrettet. Hvis du har brug for at beholde parsertilstand, skal du bygge den selv.
Jeg finder det ofte nyttigt at pakke de grundlæggende bevægelser ind i et sæt iteratorer, der ved, hvordan man fungerer på XMLReader
som at gentage elementer eller kun underordnede elementer. Du finder dette beskrevet i Parse XML med PHP og XMLReader
.
Se også: