Avatar billede bajerfar Nybegynder
23. maj 2007 - 00:27 Der er 9 kommentarer og
1 løsning

Udskriv XML i TextField

Hej Eksperter

Jeg har problmer med at udskrive min XML-fil i et TextField med et loop. Loop'et virker dog fint med trace(). Kan nogen sige hvorfor?

this.createTextField("xml_txt", 1, 100, 100, 300, 100);
xml_txt.multiline = true;
xml_txt.wordWrap = true;

var guestbook_xml:XML = new XML();
guestbook_xml.ignoreWhite = true;
guestbook_xml.onLoad = function(success) {
    if (success) {
        procXML(this);
    } else {
        trace("file not loaded");
    }
};

guestbook_xml.load("xml/guestbook_db.xml");

function procXML(xml:XML) {
    xml_length = guestbook_xml.firstChild.childNodes.length;
    for (var i:Number = 0; i < xml_length; i++) {
        trace(guestbook_xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue);
        xml_txt.text = guestbook_xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
    }
}

show_scrollbar();
Avatar billede andersbro Nybegynder
23. maj 2007 - 00:38 #1
prøv med .toString() efter nodeValue
Avatar billede mgade Nybegynder
23. maj 2007 - 10:13 #2
Flash sutter røv med det der. Har selv lige rodet med samme problem. Hvad er symptomet? Kommer der bare ingenting eller hvad? Du har selvf. checket at der ikke er noget i vejen med xml_txt.text, fx ved at erstatte '= guestbookBlaBla..' med '="foo"', ikke?
Avatar billede mat Nybegynder
23. maj 2007 - 10:54 #3
Hvis den sidste node i din iteration tilfældigvis er tom, er det ikke så mærkeligt. Du overskriver text attributten for dit tekstfelt for hver iteration?

mvh mat
Avatar billede andersbro Nybegynder
23. maj 2007 - 11:09 #4
Det vil sige at der skal stå += i stedet for =:

xml_txt.text += newline + guestbook_xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;

Så skulle det gerne ligne hvad der kommer ud af trace
Avatar billede bajerfar Nybegynder
23. maj 2007 - 17:08 #5
andersbro -> Du har minsandten ret. Mente egentlig, at jeg havde forsøgt denne.

Nå, men anyway .. Læg et svar, så sender jeg nogle points i din retning.

Takker mange gange
Avatar billede bajerfar Nybegynder
23. maj 2007 - 19:00 #6
.. har dog et sidse spørgsmål, som du måske kan hjælpe med: Hvordan kan det være, at der står 'undefined', som det første, når jeg bruger dette script, til at udskrive xml'en med:

function procXML(xml:XML) {
    xml_length = guestbook_xml.firstChild.childNodes.length;
    for (var i:Number = 0; i < xml_length; i++) {
        xml_body_str += guestbook_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue + newline;
    }
    xml_txt.text = xml_body_str;
}
Avatar billede andersbro Nybegynder
24. maj 2007 - 08:54 #7
Hmm, jeg kan jo ikke se din xml... mangler den første childnode at blive udskrevet? Eller kommer den efter undefined?

Men det kan måske også være noget med hvordan du definerer xml_body_str. Hvis du lægger noget til noget der er undefined, kan det måske give problemer. Prøv med
var xml_body_str:String = "";
Avatar billede bajerfar Nybegynder
24. maj 2007 - 17:44 #8
ja, ok. Nu har jeg den. Det var, som du foreslog, fordi min streng xml_body_str ikke var deklareret i forvejen.

Nu kører det.

Tusind tak for hjælpen. - Læg et svar :-)
Avatar billede andersbro Nybegynder
24. maj 2007 - 22:49 #9
Det var så lidt .-)
Avatar billede bajerfar Nybegynder
24. maj 2007 - 23:08 #10
Takker endnu en gang ..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester