XML Parsen und strukturiert in Datenbank übertragen


g4mmler

Mitglied
Hallo,
Ich haben ein problem die Übertragung der Daten von XML zu MYSQL zu realisieren.
Ich bin das problem mit hilfe von expat angegengen und kann die XML dateien auch super einlesen und formatieren, mein Problem ist nur, dass ich nicht direkt auf die inhalte der Tags zugreifen kann.

<TAG>inhalt</TAG>

Um diesen inhalt in eine datenbank zu schreiben müsste ich einzeln darauf zugreifen können. Ich kann aber mit expat nur definieren, dass <TAG> z.B. durch <div> ersetzt wird. Auf den Inhalt selbst kann ich jedoch nicht wirklich zugreifen. Er wird lediglich mittels der cdata function an einen string angehangen:

function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}

Ich kann aber nichtmehr unterscheiden in welchem tag der inhalt stand und ihn somit nicht speziefisch zuordnen...

Ich hoffe es kann mir jemand bei diesem Problem helfen.
 

kuddeldaddeldu

Erfahrenes Mitglied
Hi,

Ich kann aber nichtmehr unterscheiden in welchem tag der inhalt stand und ihn somit nicht speziefisch zuordnen...

Ich vermute, wir reden von der XML Parser Erweiterung?

Da würde ich mir an Deiner Stelle eine Klasse für den Parser schreiben, in der Du zusätzlich einen Elementstack definierst, den Du in start_element_handler und end_element_handler verwaltest. Dann kannst Du im cdata_handler abfragen, in welchem Tag Du Dich aktuell befindest.

LG
 

g4mmler

Mitglied
Cool danke. Hab auch schon überlegt das irgendwie zu speichern.
Ein Stack ist dafür natürlich ziemlich praktisch.
Dann hat sich mein Problem wohl gelöst.
 

Neue Beiträge

Forum-Statistiken

Themen
272.361
Beiträge
1.558.639
Mitglieder
187.834
Neuestes Mitglied
jordanx0206