|
|
|||||||
SWiSHmax 2
|
Professionelle Bilder ab 1 €
|
| Stichworte |
| child, einlesen, filtern, firstchild, gefiltert, sortieren, xml, xml daten, xmldaten |
![]() |
|
|
LinkBack (5) | Thread Tools |
|
|||
|
Hallo Leute,
ich kenne mich mit Swishmax einigermassen aus. Viele Dinge kann ich schon, gelegentlich gibts Probleme mit der einen oder anderen Sache, besonders dann, wenns für mich zu sehr ins Abstrakte geht. Ich hab hier in der Forensuche keine Antwort auf meine Frage gefunden, würde mich aber sehr freuen, wenn mir jemand auf die ganz konkrete Frage nen kurzen Kommentar abgeben kann, der mir weiterhilft, das Thema XML einlesen komplett zu verstehen. Ausgangssituation: Ich habe eine feste XML-Datei, die schon in einer bestimmten Struktur besteht. Um mich besser verständlich zu machen habe ich hier eine Skizze angefertigt: ![]() Die XML-Datei habe ich mit einem Freeware-Editor angeschaut und kenne daher die Struktur. Den Code, mit den ich die XML-Daten auslese möchte ist aus dem Internet und sieht wie folgt aus: Code:
onLoad () {
menuXml = new XML();
menuXml.ignoreWhite = true;
menuXml.load("namemeinerdatei.xml");
menuXml.onLoad = function(success) {
if (success) {
msg.text = "Daten erfolgreich geladen...";
Item = this.firstChild.childNodes;
for (var i=0; i<Item.length; i++) {
n = "iC" add i;
duplicatesprite("itemClip", (n), i);
(n)._x = 17.5;
(n)._y = 59.5+20*i;
(n).buttonLabel.text = Item[i].attributes.name;
(n).myUrl = menuItem[i].attributes.url;
(n).onRelease = function () {
//irgendwas machen
}
}
}
Die Zeile "Item = this.firstChild.childNodes; " holt was genau raus? Die Überschriften wie in der Skizze Obst und Gemüse? Wie müsste ich den Code ändern wenn ich an Apfel Birnen und Bananen komme, und wie um dann an die Granny zu gelangen und was drin steht? Gibt es da ein SecondChild (hoffe ich blamiere mich mit dieser Frage nicht)? Ich hab jetzt bestimmt 2 Tage damit experimentiert und bekomme einfach keine Anzeige - was mit einiger Sicherheit daran liegt, dass ich nicht verstanden habe was FirstChild, Nodes verstanden habe, und ob attributes im obigen Fall AS-Code ist oder einfach ein Bezeichner, den man beliebig abändern kann. Dann noch zwei Dinge. Im XML-Editor zeigt es mir wie oben bei Äpfel eine ID an. Kann ich da einen einzelnen Satz mit rausfiltern? Wenn ich nur von den Granny wissen will, wie viele am Lager sind, oder z.B. nur alle Artikel wissen will, die in der Verpackung 300 gr haben... Ist das auch irgendwie möglich das zu sortieren/filtern? Jede freundliche Hilfe ist willkommen. Ich brauche anhand des obigen Musters einfach ein paar Denkanstösse und Hilfestellung, damit ich es selbst kapiere und endlich weiterkomme mit dieser Sache. Lieben Dank, AMOLAS Last edited by Olli : 11.08.2007 at 17:52. Reason: Bild angehängt... |
|
|||
|
Lieben Dank Olli.
Das ist ein Anfang. Wobei ich schon gemerkt habe, dass sich jetzt noch mehr Fragen auftun als das vorher schon der Fall war. Das mit den Bildern werd ich mir hinter die Ohren schreiben. Logisch eigentlich. Gruss AMOLAS |
|
|||
|
Hallo amolas,
kleiner Nachtrag. (zum 2. Ihrendwie ist mein Beitrag vor einigen Stunden nicht rübergekommen..) Für den Import von XML-Dateien habe ich mir eine kleine Testseite gebastelt, die die Information der XLM-Datei als Variable an einen Sprite weitergibt. Meine Informationen habe ich den Links einiger XML-Seiten entnommen, die ich als Verlinkung im Beispiel meiner Testseite eingebunden habe. Gruß .................\!/ ..............(@ @) ..........o00-(_)-00o .................................Wolli [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. ] |
|
|||
|
Tjo - wieder 2 Nächte in Folge mit diesem Thema verbracht und eine Menge Frust aufgebaut jetzt. Ausgabe: Fehlanzeige.
Die beiden Links Olli waren überhaupt nicht hilfreich, weil sie auf so viele weiterführende Befehle und eventuelle Möglichkeiten gezeigt haben, und ich einfach aufgrund der mangelnden Ahnung zum Thema XML nicht den Hauch einer Chance habe herauszufiltern, was ich für meinen Zweck brauche und was nicht. Eine klarere Eingrenzung wäre vielleicht besser gewesen. Schade. Ich dachte ich habe eine klare und sogar illustrierte Frage oben gestellt, die eine einfache Antwort ohne irgendwelche weiter verwirrende Fachbegriffe ermöglichen sollte mit der ich wirklich weitergekommen wäre, anstatt nochmal 2 Nächte um die Ohren zu schlagen. Das war ein Irrtum. Lieber Wolli, auch mit Deinen Ausführungen konnte ich überhaupt nichts anfangen, und der Link, der beigefügt ist funktioniert nicht. Zurück geblieben ist jetzt also nur ein unendlicher Frust. Aber danke für Euren Versuch. |
|
||||
|
|
|
||||||||||||||||||||||||
|
Das Problem ist das dir die Grundlagen fehlen, und dir das nun alles beizubringen sprengt hier ein wenig den Rahmen, du darfst es den Leuten nicht übel nehmen wenn sie es garnicht erst versuchen.
Wenn ich dir nun sage das du mit an die Äpfel, Birnen und Bananen Knoten kommst, hilft dir das dann wirklich weiter? Gruß Olli |
||||||||||||||||||||||||
|
|||
|
Ja, das hilft schon mal ...
Der letzte Schritt ist dann vermutlich noch, wie ich an den Inhalt der Knoten komme, bzw den einer normalen Variable (Dynamisches Textfeld) zuweisen kann. Ich glaube da hakt es. Die eckigen Klammern und ihre Bedeutung kenne ich mittlererweile und auch die Tatsache, dass man mit 0 anfangen muss zu zählen, weil es ein array ist. Auch richtig?: Das erste FirstChild verweist auf das root? Wenn ichs verstanden habe wären in Deinem Beispiel die Code:
firstchild.childNodes[1].childNodes dann die Knoten zu Rüben, Erbsen und Zucchini, richtig? Woran ich jetzt hänge ist z.B. wenn ich an den Wert in der Verpackung kommen will. Code:
firstchild.childNodes[1].childNodes[1].childNodes[0] müsste imho auf die Verpackung zeigen, mir fehlt aber das letzte Stück. Mit attributes gehts net. value geht net. FirstChild hinten angefügt verändert auch nix. Ich brauche, so glaube ich, nur einmal den Code, der in die Var anzeige die "Dose" schreibt. Und daran scheitere ich. Code:
anzeige = firstchild.childNodes[1].childNodes[1].childNodes[0].attributes.verpackung; wär mein Vorschlag, alternativ noch Code:
anzeige = firstchild.childNodes[1].childNodes[1].childNodes[0].FirstChild.attributes.verpackung; wobei ich nicht glaube, dass das zweite richtig ist. Ich finde einfach meinen Denkfehler nicht. Und zur Sicherheit noch die Frage, ob es einen Unterschied im Code gibt, wenn ich nur einen Wert wie Dose auslese oder das den Inhalt des Felds id bei Äpfel. Also ganz ohne Grundlagen bin ich nach 4 Nächten insgesamt nicht mehr - hoffe ich doch. Ich denke es fehlt mir eigentlich nur die letzte Kleinigkeit, und hoffe darauf, dass jemand mit Deiner Erfahrung einfach sagen kann, :"Ja klar, pass auf, Du musst ..." Olli, bitte entfruste mich... |
|
||||||||||||||||||||||||
|
Quote:
Quote:
Gruß Olli |
||||||||||||||||||||||||
|
|||
|
Ah...
Jetzt kommen wir der Sache näher. Da gibts noch ne Unterscheidung, von der ich nichts wusste... Ich kann leider die Datei nicht veröffentlichen weil sie a) zu gross ist und b) Daten enthält die ich nicht so ohne weiteres online stellen kann. AAaaaber: Gemäss der Anzeige im XML-Editor handelt es sich um ein ELEMENT. In diesem Element steckt, wenn man es aufklappt ein TEXT, also der eigentliche Wert den ich rausholen will. Falls das wichtig ist: alle anderen sind in der vorliegenden Datei auch Elemente (also Ware = root) (Gemüse = Element) (Erbsen=Element) (Verpackung=Element) (value=TEXT) Heisst (analog der Zeichung:) Erstes Element in Erbsen ist Verpackung, in Verpackung steckt der Text Dose. Und den brauch ich in der Variable anzeige. Und bevor ich nochmal nerven muss: Was wäre wenn es ein Attribut ist, bzw woran erkennt man die Unterscheidung? Langsam kommt Licht in mein Dunkel. |
|
||||||||||||||||||||||||
|
Du musst ja nicht alles online stellen, ein kleiner Auszug hätte ja schon genügt, und eventuelle sensible Inhalte können ja ausgetauscht werden.
Das sollte den Unterschied klar machen. Das was ich da gepostet habe dürfte dann den Inhalt des Verpackung Elements auch schon anzeigen, sauberer ist es allerdings den Wert direkt aus der nodeValue Eigenschaft zu holen, eventuell noch ein firstChild davor wenn es sich um CDATA und nicht um reinen Text handeln sollte. Gruß Olli |
||||||||||||||||||||||||
| Folgender Benutzer sagt Danke zu Olli für den nützlichen Beitrag: | ||
amolas (14.08.2007) | ||
|
|||
|
Ich glaube jetzt hab ich den Durchbruch geschafft.
Eine erste Anzeige. Das gesuchte Zauberwort hiess nodeName bzw localName. nodeName gibt mir Erbsen aus, und childNodes[0].localName den darin liegenden Wert. Ich gebs ungern zu ^^ aber meine Zeichnung war tatsächlich etwas umständlich, das erkenne ich aber jetzt erst, wo ich meinen Denkfehler erkannt habe. Damit kann ich jetzt jedenfalls endlich den Wert an die Variable übergeben, den ich brauche. Dank für die vereinfachte Darstellung oben, olli. Das ermöglicht mir zumindest das identifizieren innerhalb der auszulesenden Datei. Jetzt hoffe ich noch dass ich noch an den attributwert komme. Weiter Try and fail. Auf die paar Stunden kommt es jetzt auch nicht mehr an... |
|
|||
|
Olli, noch eine letzte Frage, ich bin Dank Deiner Hilfe ziemlich weit, aber jetzt hakts doch nochmal...
Ich habe alles soweit begriffen. Jetzt hab ich noch eine Sache. In der xml-Datei ist in einem Node eine Liste. Muster: Element ist Bericht, Attribut ist berichtNr=automatischgenerierte Nummer Node attribute Bericht - berichtNr=12340 Bericht - berichtNr=12343 Bericht - berichtNr=12349 + in diesem Element weitere Daten dann. Bericht - berichtNr=12358 Gibt es eine einfache Idee, wie ich selektiere dass ich nur den Node anwähle in dem dann die Daten zu berichtNr.12349 stecken. Es ist bekannt dass die gewünschte Auskunft im 12349 stecken. Ich weiss nur nicht wie ich Swish sage, dass ich NUR die Daten angezeigt haben möchte die in 12349. Hast Du da ne Idee? Oder jemand anderes vielleicht? |
|
|||
|
Lesen hilft - wenn man weiss wo:
Alle, die sich auch damit beschäftigen und wissen wollen, wie das geht. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. ] Da stehen die Methoden zum Filtern drin. Jetzt sollte ich die Aufgabe erledigen können, die ich mir gestellt habe. Dank an Olli Gruss AMOLAS |
![]() |
LinkBacks (?)
LinkBack to this Thread: http://www.swishzone.de/swishmax-swishscript/xml-daten-gefiltert-einlesen-24368.html
|
||||
| Posted By | For | Type | Date | |
| swishmax | tomtom66 | Favoriten | Mister Wong | This thread | Refback | 20.06.2009 14:31 | |
| Favoriten | mister-wong.de | Social Bookmarking Tool | This thread | Refback | 15.01.2008 13:09 | |
| swishmax2, swishmax, ... | mister-wong.de | Social Bookmarking Tool | This thread | Refback | 30.10.2007 14:06 | |
| swishmax2 | sehr beliebt | mister-wong.de | This thread | Refback | 17.08.2007 20:27 | |
| swishmax | sehr beliebt | mister-wong.de | This thread | Refback | 16.08.2007 21:25 | |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Variablen aus PHP in Flash einlesen | virus | Swishmax - SwishScript | 4 | 12.09.2006 14:47 |
| Externe TXT Einlesen FEHLER | christianj | SWiSHmax - Einsteiger | 1 | 09.08.2006 01:53 |
| Einlesen und vergleichen von Variablen | PrinzEmu | Swishmax - Fortgeschrittene | 9 | 10.01.2005 14:26 |
| Ebenen und Einlesen von Externdateien | Adda | Swishmax - SwishScript | 7 | 02.02.2004 21:57 |
| Text aus Datei einlesen? | Acid_burns1 | Swish2 & Swishlite | 0 | 07.03.2003 09:16 |