tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
20
ZUGRIFFE
884
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hallo und guten Abend zusammen ,

    ich möchte in meinem Projekt in einem Dynamischen Textfeld reinen
    text importieren. Also News sollen dort stehen. Diese sollen Scrollbar sein.

    Wichtig ist mir eigentlich nur zu wissen welche die beste Methode ist den Text zu
    importieren. Nehme ich da eine TXT Datei oder XML?

    Ich habe keine Ahnung...

    Die Ausgabe soll so aussehen:

    [Datum: xx.xx.xx]
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    ----------------------------------
    [Datum: xx.xx.xx]
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    blablablablablablablabla
    ----------------------------------

    Besten Gruß,

    Mike
     

  2. #2
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    das ist Ansichtssache. Meiner Meinung nach ist XML viel komfortabler, weil du die Elemente eines Textes, grade wenns um wiederholte gleichbleibende Strukturen geht, besser anordnen kannst. Ausserdem hast du mit dem XML Objekt eine bequeme Methode, die ganze Chose auch auszulesen.

    gruss
     

  3. #3
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hi

    Danke für die Antwort.
    Ich dachte mir schon, dass es eines Tages soweit kommt...
    Nun komme ich wohl nicht drum rum.
    Muss das mit dem XML versuchen,
    aber trauen tu ich mich irgendwie nicht so richtig.

    Ich werde auch aus den Tutorials nicht so richtig schlau

    Ich poste mal was ich erarbeitet habe.

    Der XML Code (Falsch?)
    Code :
    1
    2
    3
    4
    5
    6
    
    <?xml version="1.0"?>
    <news>
    <datum>19.02.2006</datum>
    <headline>Willkommen</headline>
    <text>Blablabla</text>
    </news>

    Jetzt der AS Code (auch falsch?):
    Code :
    1
    2
    3
    4
    5
    
    xml = new XML();
    xml.load("home2.xml");
    xml.firstChild;
     
    stop();

    Ich komme nicht weiter

    Ich will in das Dynamische Textfeld mit dem namen: "home2" nun immer
    das Datum, gefolgt von der Überschrift gefolgt vom Text reinschreiben.
    Es soll auch scrollbar sein, was aber denke ich kein Problem darstellt.

    Wie fahre ich nun fort?

    Muss man die Inhalte in ein Array übergeben das mit einer While (oder überhapt einer Schleife) ausgelesen wird?

    Kann man eine XML Datei auch "beschreiben"?

    Wenn ja, wieso gibts dann noch Datenbanken wie mySQL?
    Wegen der Leistungsstärke?

    Fragen über Fragen...
    Wird wohl nur etwas für echte Profis sein.

    Wenn mir nur irgendjemand mit dem Code helfen würde,
    dann wäre ich wirklich unglaublich dankbar.

    Liebe Grüße,

    Mike
    Also quasi ähnlich wie bei PHP, wenn man auf eine
     

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    ein Beispiel zum Einladen der Daten wäre folgendes:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    var xm = new XML();
    xm.onLoad = function() {
        var news = this.firstChild;
        var datum = news.childNodes[0].firstChild;
        var headline = news.childNodes[1].firstChild;
        var text = news.childNodes[2].firstChild;
    }
     
    xm.load("home2.xml");
    Gibt es mehrere news-Tags, so kannst Du auf diese ebenfalls über das childNodes-Array zugreifen (wie Du richtig erkannt hast, kannst Du dieses über eine Schleife auslesen). Wichtig ist, dass das Einladen der Daten asynchron erfolgt: erst beim Aufruf des onLoad-Handlers stehen die Daten zur Verfügung und können ausgelesen werden.

    Mit Hausmitteln kannst Du nicht schreibend auf Dateien zugreifen; zu diesem Zweck verwendet man eine serverseitige Sprache. Du übergibst die Daten z.B. einem PHP-Script, welches die Änderungen in die Datei schreibt. Mit einer Datenbank hast Du natürlich komfortablere Möglichkeiten des Zugriffs.

    Gruß
    .
     

  5. #5
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hi Tobias ...

    Danke für Deine Antwort
    Also quasi:

    Code :
    1
    2
    3
    
    home2array=while(news.childNodes[0].firstChild){
    home2=news.childNodes...?
    }

    Ne ich verstehe es nicht
    *heul*

    Der Ansatz ist falsch oder?
     

  6. #6
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    home2array=while(news.childNodes[0].firstChild){
    Du kannst eine while-Schleife nicht einer Variablen zuordnen - sie gibt ja nichts zurück. "firstChild" ist zudem keine Methode, sondern eine Eigenschaft, die entweder gesetzt oder abgefragt werden kann.

    Ich empfehle Dir, Dich noch einmal durch die Grundlagenliteratur diverser Script- und Hochsprachen zu wühlen; insbesondere Kontrollstrukturen, Ausdrücke sowie die Untschiede zwischen Methoden/Funktionen und Eigenschaften solltest Du Dir nochmal anschauen - dann passieren Dir auch solche "Ansätze" nicht mehr.

    Ein childNodes-Array lässt sich prima mit einer for-Schleife durchlaufen, da die Länge (length) ja bekannt ist:
    Code :
    1
    2
    3
    4
    
    var foo = new Array();
    for (var i=0; i<knoten.length; i++) {
        foo = knoten[i];
    }

    Gruß
    .
     

  7. #7
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hi Tobias,

    ja hast recht...

    Aber es geht trotzdem nicht.

    Ich unterliege wahrscheinlich noch einem Denkfehler.

    Hier mein Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    stop();
    var xm = new XML(); //Ein neues XML Objekt erstellen?!
    xm.onLoad = function() { //Beim Laden des Dokuments...
        var news = this.firstChild; //...gilt news als firstchild, oder "root" der XML
        var datum = news.childNodes[0].firstChild; //...das datum ist der erste Punkt im Array der Knoten ausgehend vom "root" oder firstchild
        var headline = news.childNodes[1].firstChild; //...2.
        var text = news.childNodes[2].firstChild; //...3.
    }
    var inhalt = new Array(); //Neues Array für den Inhalt der XML
    for (var i=0; i<news.childNodes[0].firstChild.length; i++) { //Startwert für i=0, solange der Inhalt des Arrays "..." größer als i ist gilt was später folgt, i wird dekrementiert...
        inhalt = news.childNodes[0].firstChild[i]; //Der erste Knoten wird als Inhalt übergeben...
    }
    xm.load("home2.xml"); //Laden des Dokuments
    home2_mc.home2 = inhalt; //MC gefolgt von der Textfeldbezeichnung //Zuweisen des Inhalts


    Was mach ich falsch?
     

  8. #8
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Muss es nicht heißen:

    Code :
    1
    2
    3
    4
    
    var foo = new Array();
    for (var i=0; i<knoten.length; i++) {
        foo[i] = knoten[i]; //Das Array foo hochzählen? Hattest du das vergessen?
    }

    Man ich komm nicht weiter
     

  9. #9
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Folgendes:

    news entspricht: this.firstChild;

    Code :
    1
    2
    3
    4
    5
    6
    
    var inhalt = new Array();
    for (var i=0; i<news.length; i++) {
        inhalt = news[i];
    }
    xm.load("home2.xml");
    this.home2_mc.home2=inhalt[1];

    Das müsste es doch nun aber sein?
     

  10. #10
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    auf die Schnelle würd ich behaupten, dass dein news[i] dir sowas wie <datum>12.3.15</datum> zurückgibt. Der Inhalt eines Knotens wird jedoch auch als Kind interpretiert, darum müsste es heissen:

    PHP-Code:
    var inhalt = new Array();

    xm.onLoad = function () {
         var 
    news this.firstChild;
         for (var 
    i=0i<news.lengthi++) {
              
    inhalt news[i].firstChild;
              
    //mit dem firstChild den Textknoten ansprechen
         
    }
    }
    xm.load("home2.xml");
    this.home2_mc.home2=inhalt[1]; 
    gruss

    PS: Es ist schön, dass du einen immer über deinen Wissensstand informierst und selbst probierst, dein Problem zu lösen, aber push deine Beiträge bitte nicht, es wird dir hier bestimmt geholfen, auch wenn es manchmal länger dauert.

    PPS: Du kannst doch die Ausgaben etc. selbst testen. Warum muss das hier einer absegnen?
     

  11. #11
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hi!

    Ne soweit kam ich ja nichteinmal

    Es wird strikt nichts ausgegeben

    Teste es nun einmal...

    Dankeschön,

    besten Gruß,


    Mike
     

  12. #12
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Geht nicht ...
    Es wird einfach nichts ausgegeben

    Langsam bestätigt sich meine Angst

    Was mach ich falsch?

    Kann vielleicht einer sich erbarmen und einen fertigen Quelltext posten?

    Gegeben sind die XML struktur und das Dynamische Textfeld (home2).


    Ich schaffs nicht


    Danke an Euch alle für die Hilfe bisher,

    Gruß

    Mike
     

  13. #13
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    ich fänds besser, wenn du mal deine Datei posten würdest. Da ist man auch gleich näher am Problem .

    gruss
     

  14. #14
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Ich erbarme mich mal ...

    Es kommt natürlich darauf an, in welcher Form Du die Daten später brauchst - ich habe hier mal ein Array aus Objekten verwendet, was wohl die kompakteste Datenform darstellt.

    Gegeben z.B. folgende xml-Datei:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?xml version="1.0"?>
    <news>
        <datum>19.02.2006</datum>
        <headline>Willkommen</headline>
        <text>Blablabla</text>
    </news>
    <news>
        <datum>21.02.2006</datum>
        <headline>Zweiter Titel</headline>
        <text>Foobar Foobar Foobar</text>
    </news>

    Laden und Parsen mit folgendem Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    var eintrag = new Array(); // Array für die Inhalte
     
    var xm = new XML();
    xm.ignoreWhite = true;
     
    xm.onLoad = function() {
        for (var i=0; i<this.childNodes.length; i++) {
            var news = this.childNodes[i];
            eintrag[i] = new Object();
            eintrag[i].datum = news.childNodes[0].firstChild;
            eintrag[i].titel = news.childNodes[1].firstChild;
            eintrag[i].inhalt = news.childNodes[2].firstChild;
        }
        // Hier kannst Du mit den Daten weitermachen.
        // Du hast Nun ein Array (eintrag) aus Objekten mit den
        // Eigenschaften "datum", "titel" und "inhalt.
        // eintrag[0].titel gibt dann z.B. die Headline des ersten News-Tags aus.
    }
     
    xm.load("news.xml");

    Du wirst allerdings nicht umhin kommen, Die die nötigen Grundlagen anzueignen, um nicht für jeden neuen Schritt eine Komplettvorlage verlangen zu müssen ...

    Gruß
    .
     

  15. #15
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Hallo Tobias,

    Dankeschön für die Antwort.
    Was meinst du mit Grundlagen?
    Allgemeines was XML betrifft oder AS?
    Wahrscheinlich beides :-D

    Ja da hast du wohl recht.
    Ich hab mir zwar ein Buch zugelegt und es
    ist wirklich sehr nett beschrieben (Actionscript aktuell zu Flash 8 von galileo Design),
    aber es geht mir einfach zu langsam.

    Zu oft treffe ich da auf Dinge die ich eben schon kenne...
    Klar gibts auch Dinge die mir Fremd waren und auf die man einfach beim Try and Error Prinzip nicht drauf kommt. Ich werds wohl mal durchwälzen.

    Aber Lücken sind da, stimmt schon.

    Jedenfalls danke ich dir und luke für Eure Antworten.

    So wie das Script nun aussieht kann ich ein Array nach dem anderen ausgeben.
    Mein nächster Schritt wird nun sein die Werte miteinander zu verketten und untereinander auszugeben. So müsste ich eine Navigation einbauen die einen zähler inkrementiert und dann die News einzeln hochzählt. Aber das werd ich mal selbst versuchen.

    Jedenfalls bedanke ich mich für Eure freundliche Unterstützung und Hilfe.

    Besten Gruß,

    Mike
     

Ähnliche Themen

  1. Methode um DVD in Premiere Pro zu importieren
    Von multimolti im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 14
    Letzter Beitrag: 10.03.09, 00:04
  2. Reinen Text einer Website auslesen
    Von VBMichi im Forum Coders Talk
    Antworten: 3
    Letzter Beitrag: 27.12.07, 01:03
  3. Wie am besten von Inventor nach 3ds max importieren?
    Von Arthy im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 03.03.06, 03:21
  4. HTML-Text in reinen Text formatieren
    Von BugsBastard im Forum Java
    Antworten: 6
    Letzter Beitrag: 21.02.06, 14:25
  5. Reinen Text aus HTML/JSP extrahieren
    Von Vatar im Forum Java
    Antworten: 1
    Letzter Beitrag: 02.09.05, 15:57