XML -> PHP -> MySQL


tvtotal

Erfahrenes Mitglied
#1
Hallo, ich muss mehrere 10000 XML-Dateien (je 1-2 MB) importieren und frage mich, welches der beste Weg dazu ist.

Ausgangspunkt ist das Auslesen des Ordners, das man ja auf viele Arten bewerkstelligen kann: Was wäre bei so einer Menge empfehlenswert und schnell?
1a: Etwas in der Art?
Code:
$files = glob(    $order."*meinefiles*xml");
1b: oder so ?
Code:
$dir = new DirectoryIterator($order);
oder readdir oder, oder?

2: Und wie geht es dann weiter?
Code:
file_get_contents
oder
Code:
$doc = new DOMDocument();
Wer hat Erfahrung mit sowas? Danke euch.
 

Yaslaw

n/a
Moderator
#2
ALs erstes solltest du dich darum kümmern, wie die die Mehrdimensionale XML-Struktur in die DB-Struktur bringst.
Je nach Struktur lohnt es sich auch einen XMLReader zu verwenden. Oder ben das DOMDocument.
Wie du nachher die Daten ausliest ist zweitrangig.
 

tvtotal

Erfahrenes Mitglied
#3
Hallo und Danke für die Antwort. D.h. es ist kein merklicher Zeitunterschied zwischen z.B. glob und iterator beim Einlesen der Dateien?

Zur Verarbeitung: Die XML haben viele Knoten, Subknoten, Attribute usw. Beim XML-Reader lese ich, dass der sehr schnell ist, aber kompliziert bei der Verarbeitung. Was hälst von XML2Array?
 

Yaslaw

n/a
Moderator
#4
Kommt drauf an, wie das XML aufgebaut ist und was du brauchst.
Dei Einen sind gut um ein File einfach von Anfang bis zum Ende durchzugehen, Anderes sind gut darin, Daten spezifisch herauszufischen.

Ich kenne die Unterschiede der verschiedenen XML-Readers nicht, da ich seit 10 Jahren nix mehr in diese Richtung gemacht habe.