XML.sendAndLoad() -> Ergebnis auswerten

Vaio82

Erfahrenes Mitglied
Hallo zusammen,

ich stehe hier gerade vor einem kleinen Problem...

Ich übergebe eine *.xml an ein Servlet, welches mir eine *.xml zurückliefert. Diese Datei möchte ich nun auswerten. allerdings bin ich mal wieder zu unfähig, sie richtig anzusprechen, um sie auszulesen.

Wäre schön, wenn mir da jemand einen kurzen Hinweis geben könnte.

Ich poste hier mal den Vorgang. Oben wird das zu versendende XML deklariert und unten per XML.sendAndLoad($SERVLET$, $Empfangenes Objekt$); versendet/ampfangen.

Mit/Innerhalb "send_xml.onLoad = function(status) {" möchte ich nun auf den Inhalt von "quelle_xml" zugreifen, nur bekomme ich das nicht hin.

Code:
var lo:Object = new Object();
		lo.click = function(myButton){
			
						
send_xml = new XML("<CONTAINER ID=\"CLIENT\" FUNCTION=\"GET\" CLIENT=\"" + _level0.Modul_Container.TextInput_Mandant.text + "\"><CONTENT CLIENT=\"" + _level0.Modul_Container.TextInput_Mandant.text + "\" ALIAS=\"" + _level0.Modul_Container.TextInput_Benutzername.text + "\" PASSWORD=\"" + _level0.Modul_Container.TextInput_Passwort.text + "\" /></CONTAINER>");
send_xml.xmlDecl = "<?xml version=\"1.0\" encoding=\"ISO-8859-2\"?>";
send_xml.contentType = "text/xml";

send_xml.onLoad = function(status) {
	trace("Server Antwort: " + this.status);
	createTextField("antwort_txt",1,0,0,200,200);
	antwort_txt.text = "Status: " + this.status + "\n" 
	antwort_txt.text += this;
}
/*
send_xml.onLoad = function() {
	if(send_xml.loaded){
		trace("erfolgreich");
	}else{
		trace("nicht erfolgreich");
	}
}
*/

quelle_xml = new XML();
quelle_xml.onLoad = send_xml.onLoad;

send_xml.sendAndLoad("http://xxx/xxx/servlet/ERPServletClient",quelle_xml);


Würde mich über eine Antwort sehr freuen :)

Schöne Grüße,
Claus
 
Hi,

mal eine Frage: Wozu brauchst Du die Funktion "send_xml.onLoad", wenn doch nur quelle_xml geladen wird (zudem ist mir das Konstrukt:
PHP:
quelle_xml.onLoad = send_xml.onLoad;
suspekt, aber da sag ich nichts zu, mag ja gehen)?

Na ja, in der Funktion kannst Du mit "this" doch prima auf das Objekt zugreifen - wo hakt es denn genau? Mit nextSibling, firstChild usw. bekommst Du doch Zugriff auf die einzelnen Knoten. Lass Dir das doch einfach mal ausgeben:
PHP:
quelle_xml.onLoad = function() {
    trace(this.toString());
    trace(this.hasChildNodes());
    trace(this.firstChild.toString());
    // usw.
}
Ansonsten poste doch bitte eine etwas genauere Beschreibung des Problems.

Gruß

.
 
Hallo Datic,

bestens :)

Ich nutzte das Konstrukt, da es so in einem meiner unzähligen ActionScript Bücher steht, von denen man nur irgendwie keins mehr gebrauchen kann, wenn es in die dynamische Oberflächengenerierung geht...
 
Das beste ActionScript-Handbuch ist meiner Meinung nach die Flash-Hilfe :)
(Die Referenz ist, abgesehen von ein paar Tippfehlern, sehr genau und übersichtlich).

Gruß

.
 
Datic,

wie könnte ich in meinem Beispiel denn überprüfen, ob der Vorgang korrekt verlaufen ist?

könnte ich this irgendwie abfrage? Beispielsweise mit:


if(!this){
...
}

Code:
send_xml = new XML("<CONTAINER ID=\"CLIENT\" FUNCTION=\"GET\" CLIENT=\"" + _level0.Modul_Container.TextInput_Mandant.text + "\"><CONTENT CLIENT=\"" + _level0.Modul_Container.TextInput_Mandant.text + "\" ALIAS=\"" + _level0.Modul_Container.TextInput_Benutzername.text + "\" PASSWORD=\"" + _level0.Modul_Container.TextInput_Passwort.text + "\" /></CONTAINER>");
send_xml.xmlDecl = "<?xml version=\"1.0\" encoding=\"ISO-8859-2\"?>";
send_xml.contentType = "text/xml";


quelle_xml = new XML();
quelle_xml.onLoad = function() { 
   // trace(this.toString()); 
   //trace(this.hasChildNodes()); 
   // trace(this.firstChild.toString()); 
    // usw. 
} 

send_xml.sendAndLoad("http://localhost:8080/ierp/servlet/ERPServletClient",quelle_xml);

Um zu sehen, ob die Verbindung erfolgreich war, oder bietet AS da etwas eleganteres an?
(Bin ja noch ein Neuling auf dem Gebiet)


Beste Grüße,
Claus
 
Zuletzt bearbeitet:
Hi,

wie gesagt, die Flash-Hilfe ist Dein Freund und bietet einiges an:

- XML.onData -> Ereignisprozedur. Gibt "undefined" zurück, wenn das Laden fehlgeschlagen ist

- XML.status -> Eigenschaft. Gibt 0 (Erfolg) oder eine Reihe Fehlercodes bez. d. Parsens zurück

- XML.nextSibling gibt null zurück, wenn kein Geschwisterknoten existiert

- XML.hasChildNodes() gibt true zurück, wenn untergeordnete Knoten existieren.

Wenn onData und status nichts Verdächtiges liefern, hangele ich mich normalerweise mit einer while-Schleife durch, die im Fall von Unterknoten rekursiv aufgerufen wird...

Gruß

.
 
Zuletzt bearbeitet:
Zurück