XML Datei in Flash einlesen und wieder speichern

Orphelina

Erfahrenes Mitglied
Hallo,

also das Einlesen einer XML Datei klappt bisher ganz gut, habe das ganze über den XML-Connector gelöst.
Nun möchte ich aber genau diese XML Datei bearbeiten und wieder speichern.
Soweit ich jetzt gelesen habe, kann ich das nur über PHP o.ä. über den XML-Connector- Befehl send machen, da das nicht lokal bearbeitet/ verarbeitet werden kann?
Hat jemand ein gutes Tutorial o.ä. für den send-Befehl, ausser der Macromedia Referenz, ich suche Beispiele, da ich mit einer einzigen Codezeile nichts anfangen kann...
Bietet mir das SharedObject eine Alternative?
Kann ich damit auch wieder ein XML erhalten oder nur Text?
Das ist der Teil der mir noch nicht so klar ist... Denn ich muss die XML einlesen, bearbeiten und wieder speichern und versuche rauszufinden ob das möglich ist und wenn ja wie.

Ich verwende Flash MX Professional 2004...

Gruss
 
Hi,

eine XML-Datei ist ja im Prinzip nichts weiter als ein String (bzw. eine Textdatei).

Am einfachsten wäre meiner Meinung nach (auch wenn wohl nicht ganz im Sinne des Erfinders), das XML-Objekt in ein LoadVars-Objekt zu serialisieren und als String an den Server zu schicken. Dann kannst Du die Daten mit PHP einfach in eine Textdatei schreiben.
PHP:
// AS:
function saveXML(obj:XML) {
    var lv = new LoadVars();
    lv.data = obj.toString();
    lv.onLoad = function(success) {
        trace("Übertragung: " + success);
    }
    lv.sendAndLoad("meinscript.php", lv, "POST");
}
PHP:
// PHP:
if (isset($_POST["data"])) {
    if ($fhd = fopen("meinxml.xml", "w")) {
        fwrite($fhd, $_POST["data"]);
    }
}

In sofern kannst Du das XML-Objekt auch in einem SharedObject ablegen und beim Wiedereinlesen in ein XML-Objekt parsen:
PHP:
var xm = new XML(string_vom_sharedObject);
Aus das SharedObject hast Du allerdings nur von Deinem Flashfilm aus Zugriff.

Gruß
.
 
Hallo,

also da ich kein PHP kann und ich den Film eigentlich auch nur lokal laufen lasse, ist das mit dem SharedObject die bessere Alternative- obwohl mir die Codeschnipsel im PHP schon was sagen ;-)
Ich werde das mal asuprobieren, ich war mir eben nicht sicher wie das mit dem SharedObject so funktioniert und ob ich das einfach wieder ein XML draus machen kann.
Danke schön auf jeden Fall erstmal!

Gruss
 
Also das mit dem SharedObject hat gut funktioniert zum Speichern, aber derzeit tendiere ich zu der PHP Lösung. Ist es damit denn möglich die XML-Datei auf den Server zu speichern als *.xml? Hätte mir jemand noch gute Links oder Codeschnipsel für sowas?

Danke und Gruss
 
Ist es damit denn möglich die XML-Datei auf den Server zu speichern als *.xml?
ja, der von mir gepostete Codeschnipsel sollte eigentlich genau das machen: den übergebenen String als XML-Datei abspeichern. Das setzt natürlich voraus, dass das LoadVars-Objekt auch das komplette XML-Objekt als String (serialisiert) enthält.

Wo genau hängt es denn bei Dir?

Gruß
.
 
Ich warte noch auf einen Zugang zu einem PHP Server, deshalb konnte ich das PHP Script noch nicht ausprobieren.
Demzufolge legt das PHP Script in den gleichen Ordner eine bzw. diese XML Datei ab?
 
Okay vielen Dank erstmal, ich denke das hat mir schon ne Menge geholfen. Ich lass das Thema noch offen, bis es funktioniert und hoffe das bis dahin alles klappt!

Gruss
 
Hallo nochmal,

kannst du mir noch kurz erklären was die folgenden Variablen sind bzw woher sie kommen?
obj und data
da ich nicht weiss ob ich da was anpassen muss bzw. woher das AS welche Daten er woher nehmen soll?!

Gruss
 
Na ja, der Funktion übergibst Du ein XML-Objekt (obj). Die Funktion serialisiert das XML-Objekt (obj.toString()) und speichert es in dem Member "data" des LoadVars-Objektes. nach dem Senden steht der String dann in $_POST["data"] zur Verfügung.

Wie liegen die XML-Daten denn bei Dir in Flash vor?

Gruß
.
 
Zurück