W PHP możesz czytać bardzo duże pliki XML za pomocą XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Ekstremalnie duże pliki XML powinny być przechowywane na dysku w skompresowanym formacie. Przynajmniej ma to sens, ponieważ pliki XML mają wysoki współczynnik kompresji. Na przykład spakowane gzipem jak large.xml.gz
.
PHP obsługuje to całkiem dobrze dzięki XMLReader
za pomocą opakowań kompresji
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
XMLReader
pozwala operować na bieżącym elemencie „tylko”. Oznacza to, że jest tylko do przodu. Jeśli chcesz zachować stan parsera, musisz go zbudować samodzielnie.
Często uważam za pomocne zawinięcie podstawowych ruchów w zestaw iteratorów, które wiedzą, jak operować na XMLReader
jak iteracja tylko po elementach lub elementach podrzędnych. Znajdziesz to opisane w Parse XML za pomocą PHP i XMLReader
.
Zobacz także: