Reinen Text importieren, welche Methode iust am besten?

SonMiko

Erfahrenes Mitglied
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
 
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
 
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:
<?xml version="1.0"?>
<news>
<datum>19.02.2006</datum>
<headline>Willkommen</headline>
<text>Blablabla</text>
</news>

Jetzt der AS Code (auch falsch?):
Code:
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
 
Hi,

ein Beispiel zum Einladen der Daten wäre folgendes:
Code:
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ß
.
 
Hi Tobias :)...

Danke für Deine Antwort
Also quasi:

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

Ne ich verstehe es nicht
*heul*

Der Ansatz ist falsch oder?
 
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:
var foo = new Array();
for (var i=0; i<knoten.length; i++) {
    foo = knoten[i];
}

Gruß
.
 
Hi Tobias,

ja hast recht...

Aber es geht trotzdem nicht.

Ich unterliege wahrscheinlich noch einem Denkfehler.

Hier mein Code:

Code:
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?
 
Muss es nicht heißen:

Code:
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 :-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-:)-(
 
Folgendes:

news entspricht: this.firstChild;

Code:
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?
 
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:
var inhalt = new Array();

xm.onLoad = function () {
     var news = this.firstChild;
     for (var i=0; i<news.length; i++) {
          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:confused:. Warum muss das hier einer absegnen?
 

Neue Beiträge

Zurück