sql >> Database >  >> RDS >> Mysql

Extreem grote XML-bestanden parseren in php

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:



  1. Column Store-plannen

  2. Optionele afhankelijkheden creëren

  3. Het automatiseren van de tabellarische modelverwerking van Analysis Services (SSAS)-databases in SQL Server

  4. Hoe veilig is authenticatie in het mysql-protocol?