Reinen Text importieren, welche Methode iust am besten?

Hi!

Ne soweit kam ich ja nichteinmal

Es wird strikt nichts ausgegeben

Teste es nun einmal...

Dankeschön,

besten Gruß,


Mike
 
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
 
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:
<?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:
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 ... :rolleyes:

Gruß
.
 
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
 
War in dern Ferien, habe meinen Geburtstag am 25. gefeiert und war nicht da.

Folgendes, ich habe den Code ergänzt, aber ich habe immer den Fehler, das
nur ein Datensatz ausgegeben wird.

Hier der Code

Code:
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 = String(news.childNodes[0].firstChild);
		eintrag[i].headline = news.childNodes[1].firstChild;
		eintrag[i].inhalt = news.childNodes[2].firstChild;
	}
	for(var j=0; j<eintrag.length; j++){
	home2_str=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n";
	}
	// 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("home2.xml");
stop();

Hat jemand eine Idee?

Besten Gruß,

Mike
 
Hi,

lass Dir mal die Länge des childNodes-Arrays ausgeben, und zwar hier:
Code:
xm.onLoad = function() {
	trace(this.childNodes.length);
	for (var i=0; i<this.childNodes.length; i++) {
Wenn dort eine "1" ausgegeben wird, ist die XML-Datei fehlerhaft. Lass Dir auch mal den parsing-Status ausgeben und poste das Ergebnis:
Code:
xm.onLoad = function() {
	trace(this.status);

Gruß

EDIT: Ich habe grade noch einen Fehler (wahrscheinlich den einzigen ;)) entdeckt:
Code:
for(var j=0; j<eintrag.length; j++){
	home2_str=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n";
}
Damit überschreibst Du den String "home2_str" immer wieder mit den Werten des aktuellen Eintrags, so dass am Ende nur noch der letzte Eintrag zu sehen ist. Änder mal das "=" in ein "+=", um neue Einträge an den String anzuhängen.
.
 
Hi Tobias...

Ja das hatte ich auch probiert...
Aber das Problem ist dann die Ausgabe,
so steht am Anfang dann als erstes "undefined".

Mit einer Bedingung kann ichs auch nicht abfangen.
Dachte ich mach sowas wie...
Code:
for(var j=0; j<eintrag.length; j++){
		if(j=0){
		home2_str=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
		else{
		home2_str+=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
	}
Was aber zum qualvollen Abwürgen des Programms führt...

Das Undefined muss irgendwie weg... weiss nur nicht wie ichs abfangen soll/ kann...
 
Hi,

_wo_ genau bekommst Du nun ein "undefined"?

Übrigens:
Code:
		if(j=0){
		home2_str=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
		else{
		home2_str+=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
Das macht überhaupt keinen Sinn: WENN (j=0) DANN mache etwas ANSONSTEN mache genau das gleiche? Ausserdem ist (j=0) eine Zuweisung und kein Vergleich: Du setzt damit die Variable j auf den Wert 0 und erzeugst damit eine Endlosschleife.

Gruß
.
 
Haha ich depp...

Dank dir es mal wieder...

Klar ich lag garnicht so falsch

Ich habs angepasst

Code:
for(var j=0; j<eintrag.length; j++){
		if(j==0){
		home2_str=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
		else if(j>0){
		home2_str+=eintrag[j].datum + "\n" + eintrag[j].headline + "\n" + eintrag[j].inhalt + "\n" + "\n";
		}
	}

Das Unsigned stand vor dem allerersten Eintrag und es lag an dem "+" vor dem "=".
Was soll auch verkettet werden, wenn noch nichts da war zum verketten.
In PHP hab ich auch die String immer so verkettet das der erste keinen Punkt hatte,
erst die folgenden, also Beispiel
PHP:
<?php
$peter="A";
$peter.="B";
?>

Ich denke es lag einfach an der Verkettung.
Mit der Bedingung fange ich es ab.


Danke mal wieder :)


Besten Gruß,


Mike
 

Neue Beiträge

Zurück