| |||||||
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: Sep 2003
Beiträge: 51
| CDATA xml funktioniert nicht
hallo zusammen, folgendes problem. ich lese mit diesem script eine xml-datei ein: daten = new XML(); daten.ignoreWhite = true; daten.load("alle_daten.xml"); daten.onLoad = function (success) { if (success) { biotext = daten.firstChild.childNodes[0].firstChild; infotext = daten.firstChild.childNodes[1].firstChild; gotoAndStop(2); } } dann im bild2 erzeuge ich zwei textfelder mit jeweils diesem script: var infotextFormat:TextFormat = new TextFormat(); infotextFormat.align = "left"; infotextFormat.font = "Gotham-Medium"; infotextFormat.size = 12; infotextFormat.color = 0x222222; infotextFormat.leading = 3; this.createTextField("teext0", 10, 10, 10, 340, 400); this.teext0.text = biotext; this.teext0.setTextFormat(infotextFormat); this.teext0.html = true; this.teext0.wordWrap = true; this.teext0.multiline = true; this.teext0.embedFonts = true; this.teext0.selectable = false; meine alle_daten.xml datei hat folgende struktur: <?xml version='1.0' encoding='utf-8'?> <felder> <bio>hier steht die bio</bio> <info>hier steht die info</info> </felder> das problem ist, wenn ich jetzt versuche links innerhalb der xml datei einzufügen und dazu folgende änderungen vornehme: <?xml version='1.0' encoding='utf-8'?> <felder> <bio>hier steht die bio</bio> <info><![CDATA[hier steht die info<a href="...">und ein link</a>]]></info> </felder> bekomme ich nur noch ein undefined als ausgabe im textfeld... kann mir jemand sagen wo da mein denkfehler liegt? vielen dank im vorraus, stuntman |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
|
hallo, also ohne die änderung, also das einfügen der CDATA-tags, wird die xml-datei absolut sauber ausgegeben. keine probleme. ich habe gerade mal ausprobiert die text-zuweisung so zu ändern: this.teext0.text = biotext; in this.teext0.htmlText = biotext; dann bekomme ich das als ausgabe: <a href"...">und ein link</a> was sagt man dazu? grüsse stuntman |
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
| Zitat:
ich hab gerade mal spasseshalber das markup in dreamweaver prüfen lassen. da gibt er mir folgende meldung: Unterminated character reference[xml] das macht er bei der gegenprobe mit ner anderen xml-datei nicht. ich kann aber keinen unterschied zwischen den beiden entdecken... | |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
|
das dreamweaver ding scheint nicht das problem gewesen zu sein. ich hatte irgendwo im text in der xml-datei noch "+" stehen. da hatte ich versucht zeichen zu ersetzen. hab das jetzt rausgenommen und nun meldet die markup-überprüfung auch keine fehler mehr...
|
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
|
also. stand der dinge jetzt. in der xml datei siehts so aus: <mix> <![CDATA[<a href"http://www.xyz.de">hier der link</a>]]> </mix> und in flash so: this.createTextField("teext2", 30, 396, -35, 340, 200); this.teext2.text = mixtext; this.teext2.setTextFormat(infotextFormat); this.teext2.html = true; this.teext2.wordWrap = true; this.teext2.multiline = true; this.teext2.embedFonts = true; this.teext2.selectable = false; ausgabe im textfeld: <a href"http://www.xyz.de">hier der link</a> muss ich evtl. noch etwas anderes beim laden der xml-datei beachten abgesehen von dem ignore.White? daten = new XML(); daten.ignoreWhite = true; daten.load("alle_daten.xml"); daten.onLoad = function (success) { grüsse stuntman |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
|
ok. kleine neuerung. ich habe das auslesen der xml-datei leicht verändert: daten = new XML(); daten.ignoreWhite = true; daten.load("alle_daten.xml"); daten.onLoad = function (success) { if (success) { biotext = daten.firstChild.childNodes[0].firstChild.nodeValue; infotext = daten.firstChild.childNodes[1].firstChild.nodeValue; mixtext = daten.firstChild.childNodes[2].firstChild.nodeValue; gotoAndStop(2); } } sonst alles unverändert. jetzt bekomme ich immerhin diese ausgabe: <a href="http://www.xyz.de">hier der link</a> leider immernoch nicht ganz das was ich will...:-( noch irgendjemand ne idee? danke, grüsse stuntman |
| | |
| | #9 (permalink) | |
| meistens harmlos Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 17.643
|
So aus dem Bauch raus stimmen hier Reihenfolgen nicht Zitat:
Code: this.createTextField("teext2", 30, 396, -35, 340, 200);
this.teext2.html = true;
this.teext2.wordWrap = true;
this.teext2.multiline = true;
this.teext2.embedFonts = true;
this.teext2.selectable = false;
this.teext2.htmlText = mixtext;
this.teext2.setTextFormat(infotextFormat); Rena Geändert von rena (28-08-2008 um 16:54 Uhr) | |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
| und das nächste problem
guten abend zusammen, weiter: mein xml-aufruf sieht weiterhin so aus: daten = new XML(); daten.ignoreWhite = true; daten.load("alle_daten.xml"); daten.onLoad = function (success) { if (success) { biotext = daten.firstChild.childNodes[0].firstChild.nodeValue; infotext = daten.firstChild.childNodes[1].firstChild.nodeValue; mixtext = daten.firstChild.childNodes[2].firstChild.nodeValue; videotext = daten.firstChild.childNodes[3].firstChild.nodeValue; } gotoAndStop(2); } wenn ich das ganze nun online teste und der mc in dem sich das ganze abspielt geladen wird (per attachMovie in einen mit createMovieClip erzeugten container) bekomme ich anfänglich in allen feldern "undefind"...wenn ich den mc dann noch zwei drei mal aufrufe kommen irgendwann die inhalte... ich kann mir das eigentlich nur mit lade bzw. verarbeitungszeiten für das xml-dokument erklären(?), obwohl ich eigentlich davon ausgegangen bin das die if-funktion dafür sorgt das erst dann weitergegangen wird zu bild 2 wo ich die textfelder erzeuge, wenn alle daten da sind... liege ich da falsch? wie könnte ich sicher das die inhalte beim ersten aufruf direkt angezeigt werden? vielen dank für hilfe / hinweise grüsse stuntman |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 51
| so gehts.
falls es jemand anderem hilft. ich hab anscheinend ne lösung gefunden. ich hab das ganze textfeld erstellen jetzt ins selbe frame in eine funktion "daten_anzeigen" gepackt die bei "success" aufgerufen wird und nun scheint es reibungslos zu funktionieren. toi toi toi. sieht dann also so aus: if (success) { biotext_chopjohn = daten.firstChild.childNodes[0].firstChild.nodeValue; infotext_chopjohn = daten.firstChild.childNodes[1].firstChild.nodeValue; mixtext_chopjohn = daten.firstChild.childNodes[2].firstChild.nodeValue; videotext_chopjohn = daten.firstChild.childNodes[3].firstChild.nodeValue; discotext_chopjohn = daten.firstChild.childNodes[4].firstChild.nodeValue; daten_anzeigen(); } } grüsse stuntman |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |