Avatar billede donslund Nybegynder
18. oktober 2006 - 13:25 Der er 5 kommentarer og
1 løsning

Flere slags informationer fra XML

Jeg har en XML med følgende struktur:

<?xml version="1.0" encoding="utf-8" ?>
<content>
  <news>
    <item id="1" tekst="Dette er tekst" link="www.lego.com" />
    <item id="3" tekst="Dette er tekst" link="www.arla.dk" />
    <item id="4" tekst="Dette er tekst" link="www.politi.com" />
  </news>
  <pics>
    <item id="5" pic="logo/arla.gif" />
    <item id="6" pic="logo/lego.jpg" />
  </pics>
</content>

I flash skal de to dele News og Pics køre uafhængige af hinanden.

Jeg bruger nedenstående kode til at få xml'en ind i nogle arrays. Men det vil ikke helt som jeg vil.

function buildArrays (success:Boolean) {
    if(success) {
        var statement = statements.firstChild.childNodes;
//        trace("her: " + statement);
        var stateArray:Array = Array();
        var picArray:Array = Array();
        antal = statement.length;
        for (var i=0; i<statement.length; i++) {
            trace(statement.firstChild.childNodes);
            if(statement.firstChild.nodeName == "news"){
                var news = statement.firstChild.childNodes;
                trace("her: " + news);
            } else {
                var pics      = statement.firstChild.childNodes;
            }
        }
        ... ... ... ...

Hvad gør jeg når jeg har 2 dele i min XML? Hvis der kun er en del, så kan jeg godt få det til at virke.
Avatar billede docks Nybegynder
18. oktober 2006 - 13:44 #1
du skal have 2 løkker ind i hinanden...

for(var i:Number = 0; i< statements.fistChild.chilNodes.length;i++){
for (var j:Number =0; j<statements.firstChild.childNodes[i].childNodes.length;j++){
// kode her
}

}
Avatar billede donslund Nybegynder
18. oktober 2006 - 14:04 #2
Det var bedre, men jeg forstår ikke helt hvor mine data er henne:

function buildArrays (success:Boolean) {
    if(success) {
        var statement = statements.firstChild.childNodes;
//        trace("her: " + statement);
        var stateArray:Array = Array();
        var picArray:Array = Array();
        antal = statement.length;
        for(var i:Number = 0; i< statements.firstChild.childNodes.length;i++){
            for (var j:Number =0; j<statements.firstChild.childNodes[i].childNodes.length;j++){
                trace(statements.firstChild.childNodes[i].nodeName);
                if(statement.firstChild.childNodes[i].nodeName == "news"){
                    var news = statement.firstChild.childNodes[i].childNodes;
                } else {
                    var pics = statement.firstChild.childNodes[i].childNodes;
                }
            }
        }
        trace(news);
        for (var i=0; i<news.length; i++) {
            var item = thumbs.attachMovie("statement_mc", "s"+i, i);
            item.statement_text.statement = unescape(""+statement[i].attributes.tekst+"");
        } // for
    }// if....
}// fn ...

Burde dette ikke være rigtigt, eller kommer mine data ikke ned er de arrays der hedder news og pics?
Avatar billede mat Nybegynder
18. oktober 2006 - 15:02 #3
Hvis du alligevel først itererer igennem news efter din dobbelte løkke, er der vel ingen grund til at have den?

if(success) {
       
        var statement = statements.firstChild.childNodes;
        var antal:Number = statement.length;
       
        for(var i:Number = 0; i< antal;i++){
            if(statement[i].nodeName == "news"){
                    var news:Array = statement[i].childNodes;
            } else {
                    var pics:Array = statement[i].childNodes;
            }
        }
        trace(news);
        for (var i:Number=0; i<news.length; i++) {
            trace(news[i].attributes.tekst);
            /*
            var item = thumbs.attachMovie("statement_mc", "s"+i, i);
            item.statement_text.statement = unescape(""+statement[i].attributes.tekst+"");
            */
        } // for
}// if....

..eller?

mvh mat
Avatar billede donslund Nybegynder
18. oktober 2006 - 18:37 #4
Nej, det har du jo sådan set ret i. Jeg synes også, at det var en del dobbelt.
Avatar billede donslund Nybegynder
01. november 2006 - 10:13 #5
Nu er det på plads. Smid et svar Mat
Avatar billede mat Nybegynder
01. november 2006 - 13:57 #6
aight
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