Um mit PHP große XML Dateien auswerten zu können, muss man einen SAX Parser verwenden, der die XML Dateien von oben nach unten durchliest und nicht in ein Objekt umwandelt. Dafür ist der XMLReader von PHP vorgesehen.
Ein Beispiel:
$data = new Data(); $reader = new \XMLReader(); $reader->open($file); while ($reader->read()) { if ($reader->nodeType == \XMLReader::ELEMENT) { switch ($reader->name) { case "tagName1" : $node = new \SimpleXMLElement($reader->readOuterXML()); $attributes = $node->attributes(); $entity = new Entity(); $entity->setId($attributes['id']); $entity->setName($attributes['name']); $entity->setCode($attributes['code']); $data->addEntity($entity); break; case "tagName2": $node = new \SimpleXMLElement($reader->readOuterXML()); $attributes = $node->attributes(); $entity = new OtherEntity(); $entity->setId($attributes['id']); $entity->setName($attributes['name']); $entity->setCode($attributes['code']); $data->addOtherEntity($entity); break; } } }