| |||||||
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) |
| Neuer User Registriert seit: Dec 2005
Beiträge: 11
| XML-Daten im Array sortieren
Hallo Liste, habe mal wieder ein kleines Problem, dass mich um den Verstand bringt. Ich lese für ein Projekt eine XML Datei aus. Die sieht wie folgt aus (gekürzt): <?xml version"1.0"?> <Gasfedern> <Gasfeder ID="1" Kraft_Von='7' Kraft_Bis="200" Zuschlag="30" Hub_Von="10" Hub_Bis="150" Durchmesser="4/12" Durchmesser_ID="G"></Gasfeder> <Gasfeder ID="2" Kraft_Von='10' Kraft_Bis="500" Zuschlag="30" Hub_Von="10" Hub_Bis="150" Durchmesser="4/12" Durchmesser_ID="G"></Gasfeder> </Gasfedern> das ganze schreibe ich dann in ein Array um auf die Daten besser zugreifen zu können... Soweit alles kein Problem.. Wenn ich mein Array nun sortieren möchte, dann bringt er mir leider die Sortierung als Alphanumerische Sortierung.. also 10,7 (bei den oberen Daten). Die Werte werden also als Strings behandelt. Ich komm aber auf keine Lösung wie ich dem Ding sagen kann, dass es ZAHLEN sind. Number und ähnliches habe ich bereits versucht... Entweder ist bin doof oder ich steh heute auf der Leitung (bitte Hilfe!!) Hier mein Code-Teil: gas_xml = new XML(); gas_xml.ignoreWhite = true; gas_xml.load("gasfedern.xml"); // Lesevorgang gas_xml.onLoad = function(status) { if (status && this.loaded) { anzahl = gas_xml.firstChild.childNodes.length; trace(anzahl); for (var i = 0; i<anzahl; i++){ xmlArray[i] = gas_xml.firstChild.childNodes[i].attributes.Kraft_von; } trace(xmlArray.join()); xmlArray.sort(); trace(xmlArray.join()); } }; Gruss Schnick |
| | |
| | #2 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
|
nach was willst du's denn sonst sortiert haben!? Das Problem ist, dass du mit dem: PHP-Code: xmlArray[1] = xxx xmlArray[2] = xxx und sortiert wird nach dem Index...
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2005
Beiträge: 11
|
Eben.. ich will es aber nach den Inhalten haben. Also: xmlArray[1] = 2 xmlArray[2] = 1 xmlArray[3] = 7 xmlArray[4] = 10 -> 1,2,7,10 die sort funktion bringt bei mir aber: 1,10,2,7 (was ja einer Text-Sortierung entspricht) Gruss Schnick |
| | |
| | #4 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
| PHP-Code:
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Dec 2005
Beiträge: 11
|
Ja.. das war auch meine Vermutung.. (und natürlich auch mein test). Bring aber nix. Die Sortierung wird nicht verändert. Ich blick echt nimmer durch. ich geh jetzt heim und schla mal drüber... Danke aber schon mal.. Schnick |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
wie so oft, so hätte auch hier ein blick ins handbuch oder die suche im forum geholfen: Code: xmlArray = [];
xmlArray[0] = 2;
xmlArray[1] = 100;
xmlArray[2] = 50;
xmlArray[3] = 10;
//
// sortiert immer strings
trace(xmlArray.sort());
//
// richtig:
trace(xmlArray.sort(Array.NUMERIC));
// und für < flash7
function fSortNum(a, b) {
return Number(a)>Number(b);
}
trace(xmlArray.sort(fSortNum));
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |