| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
| 2-dimensionales array aus xml befüllen
hi zusammen, folgendes problem, wozu ich hier keine lösung finde: ich hab ein xml, wo ich jeweils 2 abhängige einträge habe. das ganze soll in flash eingelesen und nach dem ersten wert sortiert werden. also benötige ich ja ein 2-dimensionales array, damit es die zusammenghörigen elemente im array bei sortieren nicht mischt. die array "kunde" und "messe" benötige ich noch jeweils separat, also nicht wundern, dass die eigens ein aaray bekommen. das relevante soll sein kundeRef. ich habe ne zuweisung der inhalte in die arrays so gebaut: Code: kunde_array = new Array ();
messe_array = new Array ();
kundeRef_array = new Array();
for (var y = 0; y < infoP_xml.childNodes [0].childNodes.length; y ++)
{
kunde_array [y] = infoP_xml.childNodes [0].childNodes [y].childNodes [1].childNodes [0].nodeValue;
messe_array [y] = infoP_xml.firstChild.childNodes [y].childNodes [2].childNodes [0].nodeValue;
kundeRef_array [y] = infoP_xml.childNodes [0].childNodes [y].childNodes [1].childNodes [0].nodeValue;
for(var j=0;j<infoP_xml.childNodes [0].childNodes.length; j++){
kundeRef_array[y][j] = infoP_xml.childNodes [0].childNodes [j].childNodes [2].childNodes [0].nodeValue;
}
} ein richtiges ergebniss wäre was ind er art wie array([kunde1, messe1],[kunde2, messe2],[kunde3, messe3]...) was mach ich da falsch? vielen dank tom Geändert von modul47 (14-03-2007 um 10:00 Uhr) |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.134
|
Zeig mal die XML.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #4 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
|
Auszug: Code: <?xml version="1.0" ?> <root> <item> <thumb>00000000001.jpg</thumb> <kunde>NURIA</kunde> <messe>123</messe> <groesse>34 - 44</groesse> <as>24hrs, Moisture Permeability, Fully taped seams, Ergonomic cut</as> <pics>00000000548.jpg,00000000550.jpg,00000000552.jpg,00000000554.jpg,00000000282.jpg</pics> <hl>0</hl> </item> <item> <thumb>00000000050.jpg</thumb> <kunde>ASPEN</kunde> <messe>234</messe> <groesse>35 - 43</groesse> <as>24hrs, Moisture Permeability, Fully taped seams, Ergonomic cut</as> <pics>00000000474.jpg,00000000476.jpg,00000000478.jpg,00000000480.jpg,00000000286.jpg</pics> <hl>1</hl> </item> </root> Geändert von modul47 (14-03-2007 um 15:11 Uhr) |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.134
|
Der Code für's erste Schlüsselbild, wenn du die XML lädst. ActionScript:
ActionScript:
ActionScript:
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript Geändert von Omega Psi (14-03-2007 um 16:09 Uhr) |
| | |
| | #6 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
|
ok, DANKE erstmal. also, ich hab die class integriert, das xml-auslesen eingebaut und die class von Thumb auf Kunde umgebaut, denn thumb brauch ich in dem fall nicht... aber was ich nicht verstehe ist, wie ich das nun machen muss, damit das array 2d wird und wie ich das sortieren kann... und was ist "Bubble- oder Quicksort"?? ich hab leider bis jetzt immer nur mit ein-dimensionalem gearbeitet und auch nie wirklich sortiert... bis jetzt hab ichs so gemacht: Code: kundeRefX = new Array ();
// fügt die 3 arrays aus den 3 xmls zusammen
refs_array.push (kundeRef_array);
refs_array.push (kundeRef_array2);
refs_array.push (kundeRef_array3);
//sortiert das neue array
kundeRefX = ref_array.split (",").sort (); |
| | |
| | #7 (permalink) | |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.134
|
Modifizierter Code im ersten Schlüsselbild: Ich lade nacheinander 3 XML-Dateien und speichere die relevanten Daten in Client-Objekten. Diese Client-Objekte kommen alle in ein Array. Das Array lasse ich mir dann noch in traceArray(array:Array) ausgeben. ActionScript:
ActionScript:
Zitat:
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript | |
| | |
| | #8 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
|
wow, super, du hast dir ja richtig zeit genommen! danke! funktioniert alles prima! aber eine verständnisfrage habe ich noch: wie kann ich nun auf das 2. element im array zugreifen? ich muss ja abfragen, ob das feld "messe" leer oder nicht leer ist... was ich auch nicht verstehe ist, warum "messe" in der class als Number definiert ist... hängt das mit den beispieleinträgen zusammen? wird wahrscheinlich irgendwann text werden... DICKES DANKE!! tom |
| | |
| | #9 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.134
|
Mit ActionScript:
Das Array, dass alle Kunden - in der XML-Datei sind die Kunden-Attribute unter <item></item> zusammengefasst - benötigt dank der Klassenstruktur kein zweites Array. Alle Daten eines Kunden werden in dem Objekt gepeichert und sind über die get()-Methoden zugreifbar. Im Konstruktur eines Client würde ich auch default Wert setzen, wie einen leeren String und ausserdem noch Methoden schreiben, die die Pfade der Bilder beispielsweise in Arrays aus dem String kovertiert. Die Deklaration als Number von messe hängt mit den Beispielen zusammen.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #10 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
|
ok. das hab ich jetzt mal ausprobiert und die abfrage funtkioniert prima. danke dafür. was mich aber noch interessiert ist, ob ich da wirklich nur, so wie ich es verstanden habe, abfragen kann, ob der wert vorhanden ist, z.b. so: Code: i=0;
if((array[i].get.messe != undefined) || (array[i].get.messe != null)) {
trace("foo");
} ich hab schon etwas rumprobiert, bekomm aber nix getraced, was sich von undefined unterscheidet... wenn ich also das so mache: Code: i=0;
if((array[i].get.messe != undefined) || (array[i].get.messe != null)) {
trace(array[i].get.messe)
} wenn ichs mir nur ausgebe Code: i=0; trace(array[i].get.messe) ich wurstl mich grad durch die flashhilfe und durchs forum und find irgendwie nichts konkretes raus dabei... muss mich wohl mehr mit as2 auseinandersetzen in zukunft... ![]() sry, dass ich so schwer von begriff bin... tom Geändert von modul47 (15-03-2007 um 09:42 Uhr) |
| | |
| | #11 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.134
|
Ich habe das im Code für die Messe angepasst. Der rest erfolgt analog zu meinem Beispiel.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #12 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
|
cool ![]() jetzt hab ich gecheckt, wie's funzt.... jetzt werd ich mich mal ans sortieren machen... ich geb dir mal n bier aus, wenn ich bei dir in der nähe bin ![]() wenn das projekt fertig ist, werd ichs hier im ofrum mal vorstellen, ich glaub das wird ganz nett vielen vielen dank! tom |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |