(PHP) Lösungsansätze für einen sauberen XML Exporter
-
liebe entwickler freunde
ich bin zur zeit daran einen xml exporter zu schreiben, der daten an msn, trovit, google base etc. exportiert. nun überlege ich gerade wie ich ansetzen soll. dazu gibt es viele möglichkeiten. da es grundsätzlich bei allen webseiten um das gleiche geht, nähmlich XML daten, könnte man eine einzie klasse designen, welche dann die passenden methoden beinhaltet. ich dachte mir jetzt aber gerade, das man für jede webseite eine eigene klasse designen könnte. z.B. MSNXMLExporter, TrovitXMLExporter, etc.
nun stellt sich die frage ob das so wirklich sinn macht und ob ein interface (in C++ also eine abstrakte klasse), dazu benötigt wird oder nicht. was denkt ihr, wie sollte ich den ansatz dazu machen? unterteilen würde ich das ganze inetwa (unreif) so:
- gewünschte daten aus der datenbank holen
- daten für jede webseite individuell vorbereiten
- xml datei anlegen
- knoten und elemente aus den vorbereiteten daten erzeugen
- daten in xml datei schreibenich glaube das war es auch schon. da die xml dateien nicht versendet werden etc., glaube ich zu meinen, das grundgerüst sollte so ausreichen. die exports für die webseiten unterscheiden sich meiner meinung nach nur in dieser form:
- individuelle XML knoten/elemente/attribute
alle weiteren methoden erledigen ansich das gleiche. das fetchen der datenbank daten wird ggf. noch mit einem anderen mysql statement ausgeführt etc. ich frage mich nun also, wie sollte ich grundsätzlich aufbauen. eine klasse oder doch individuelle und dann mit oder ohne interface?
das zweite was mich dann noch brennend interessieren würde ist, wie ich am besten ein gerüst erzeuge, um meine datenbank daten in die richtigen feldnamen für die XML datei bekomme. versteht ihr was ich meine? angenommen eines der tabellen felder in der datenbank nennt sich "feldname1" und die einzelnen webseiten erwarten genau für dieses feld den namen "myfield" oder "thefield" etc. dort habe ich mir schon überlegt, dass mysql result gleich so zu erhalten, also mit "table.fieldname AS thefield" z.B. aber eigentlich ist das quatsch bzw. es geht auch sauberer. dann dachte ich mir ich erzeuge ein array mit schlüsseln. so kann ich mit mysql_fetch_array() dann über meine datenbank feldnamen als schlüssel die assoziation im array finden und den wert den ich dann über diese assoziation erhalte, ist dann der feldname für die xml datei. hier kommt nun aber ein problem: wie soll ich erkennen das es sich um einen knoten oder ein element oder gar ein attribut handeln soll. versteht ihr?
ich hoffe ihr könnt mir bei meinen zwei fragen ein wenig helfen. vielen dank!
-
Mein Vorschlag wäre, das ganze in PHP über einen Webservice zu machen. Also sämtliche Funktionen als Memberfunktionen des Service und über die entsprechenden Programme dann die Daten zu holen.
Prinzipiell müsstest du die Daten so aber selbst mit einem C++ Programm oder sonstigem per Request holen. - Die Antwort des Servers ist dann schon in XML. Somit brauchst du das ganze dann nur noch zu deserialisieren.
// Edit
Was genau willst du da eigentlich an die anderen Anwendungen exportieren?