Mit ActionScript eine XML-Datei erzeugen und ablegen...

Vaio82

Erfahrenes Mitglied
Hallo zusammen...

Ich möchte eine Benutzerverwaltung in einer RIA realisieren. Dafür wird beim Registrieren/Anmelden eine XML Datei erzeugt, welche spezifische Informationen an ein JAVA-Servlet im Backend sendet...

Die XML Strukturen generiere ich zur Laufzeit in ActionScript. Nun zu meinem Problem. Die XML möchte ich erstmal testweise lokal erzeugen. Nur finde ich keinen syntaktischen Befehl dafür. Selbst die inoffiziellen Funktionen/Methoden liefern mir da nichts.

Könnte mir da bitte jmd. einen Hinweis geben? (Der Name der neuen XML spielt dabei erstmal keine Rolle)


Meine Aktuelle Ausgabe (trace):
Code:
trace(userXML.toString());


Vielen Dank und schöne Grüße aus Gütersloh,
Claus
 
Hi,

... da (bis jetzt) sonst keiner antwortet:;)
ich nehme an, es geht Dir darum, eine XML-Datei anzulegen. Flash selbst kann keine Dateien erzeugen, Du kannst das XML-Objekt (oder wahlweise auch den resultierenden String) mit .send oder .sendAndLoad lediglich an eine URL senden. Von XML selber habe ich (gelinde gesagt) noch überhaupt keine Ahnung, also kann ich auch nicht genau sagen, in welcher Form jenes Objekt beim Server ankommt (z.B. bei einem PHP-Script).
Eine Übergangsmethode wäre vielleicht, den geparsten String (.toString) an ein PHP-Script zu senden, wo er gelesen und als Datei abgelegt wird. Ich hatte letztens Probleme bei Verarbeiten größerer Datenmengen mit $_POST, aber lokal (z.B. mit Apache) sollte das funktionieren.

Gruß
 
Danke für deine Antwort... Die XML-Strukturen nimmt allerdings ein (mir noch unbekanntes) Java-Servlet auf.

PHP spielt in dieser Umgebung keine Rolle und wird auch nicht zum Einsatz kommen.
 
Na ja,

die Frage ist reichlich unpräzise - du solltest zuerst einmal dein Flash Handbuch unter folgenen Suchbegriffen bemühen:
XMLConnector-Komponente, XML-Klasse etc....

Oder auf die Schnelle:

Konstruktor für die XML-Klasse
Verfügbarkeit
Flash Player 5.

Verwendung
new XML([quelle])

Parameter
quelle Der XML-Text, der zum Erstellen des neuen XML-Objekts eingelesen (geparst) wurde.

Rückgaben
Keine.

Beschreibung
Konstruktor; erstellt ein neues XML-Objekt. Vor Aufruf einer Methode der XML-Klasse muss der Konstruktor zum Erstellen eines XML-Objekts verwendet werden.

Hinweis: Die Methoden createElement() und createTextNode() sind die Konstruktormethoden zum Erstellen der Elemente und Textknoten in einem XML-Dokumentenbaum.

Beispiel
Verwendung 1: Im folgenden Beispiel wird ein neues, leeres XML-Objekt erstellt:

mein_xml = new XML();

Verwendung 2: Im folgenden Beispiel wird ein XML-Objekt erstellt, indem der im Parameter quelle angegebene XML-Text geparst und der dabei entstehende XML-Dokumentenbaum in das neu erstellte XML-Objekt geschrieben wird:

anderesXML = new XML("<bundesland>Bayern<ort>Augsburg</ort></bundesland>");

Siehe auch
XML.createElement(), XML.createTextNode()



Grüsse
B
 
Hallo Basileus,

die XML wird schon komplett generiert:

Code:
// XML Objekt erzeugen
userXML = new XML();
userXML.xmlDecl = "<?xml version=\"1.0\"?>";

// Hauptknoten erzeugen
containerKnoten = userXML.createElement("CONTAINER");
containerKnoten.attributes.FUNCTION = "CREATE";
containerKnoten.attributes.OBJECT = "USER";
containerKnoten.attributes.CLIENT = "123";

// Unterknoten Inhalt
person1Inhalt = userXML.createTextNode("Matze");
person2Inhalt = userXML.createTextNode("Caro");

// Unterknoten erzeugen
userdataKnoten = userXML.createElement("USERDATA");

address = userXML.createElement("ADDRESS");

	address.attributes.ORT = "Gütersloh";
	address.attributes.NAME = "Mustermann";
	address.attributes.VORNAME = "Hans";
	
account = userXML.createElement("ACCOUNT");

	account.attributes.LANGUAGE = "D";
	account.attributes.PASSWORD = "autobahn";

communication = userXML.createElement("COMMUNICATION");

	communication.attributes.TELEPHONE = "01234";
	communication.attributes.EMAIL = "hans.mustermann@gmx.de";
	
authorisationKnoten = userXML.createElement("AUTHORISATION");

role = userXML.createElement("ROLE");

	roleGruppe = userXML.createTextNode("Admin");

role.appendChild(roleGruppe);

// person2 = userXML.createElement("person");

// Unterknoten und Inhalt verknüpfen
userdataKnoten.appendChild(address);
userdataKnoten.appendChild(account);
userdataKnoten.appendChild(communication);
userdataKnoten.appendChild(authorisationKnoten);

authorisationKnoten.appendChild(role);

// person2.attributes.id = "2";
// person2.appendChild(person2Inhalt);

// Beide Unterknoten mit dem Hauptknoten verknüpfen
containerKnoten.appendChild(userdataKnoten);
// personenKnoten.appendChild(person2);

// XML-Struktur mit dem XML-Objekt verknüpfen
userXML.appendChild(containerKnoten);

// Ausgabe
trace(userXML.toString());

Nur möchte ich sie lokal speichern, anstatt sie nur per trace auszugeben...
 
...:confused: Flash kann ohne Serverumgebung keine Dateien speichern.

Du kannst die Daten (Objekt oder geparsten String) lediglich mit einem serverseitigen Script bzw. Servlet als Datei speichern. Das müsstest Du eben auf einem lokalen Server erledigen.

... oder habe ich Dich völlig missverstanden?

Gruß
 
Entschuldigt bitte,
ich arbeite mich erst in das Thema ein und nahm an, dass AS auch Daten auch lokal ablegen könnte.

Die XML-Strukturen habe ich per...


// URL = "http://....";

Code:
userXML.sendAndLoad(URL,this);  // Stimmt this denn an dieser Stelle?

an ein JAVA-Servlet übergeben. Der Tomcat merkt eine Anfrage, jedoch kommt nur ein leeres Objekt im Servlet an.

Wisst ihr da evtl. eine Lösung?
 
HI -

userXML.sendAndLoad(URL,userXML); // ist richtiger

- befindet sich die URL des Java Applets in der selben Domäne wir dein Flash FIlm ?

B
 
Guten Morgen,

wir haben es vor einigen Tagen so gelöst:

userXML.sendAndLoad( "http://XXX/XXX/XXX/XXX/XXX/ERPServletClient", this, "POST");

Schöne Grüße,
Claus
 
Zurück