Avatar billede hejmanden Nybegynder
20. september 2006 - 22:16 Der er 7 kommentarer og
1 løsning

xml for nybegyndere

Hej
Jeg er ved at lave et lille galleri
Jeg har lavet en xml fil:
<?xml version="1.0" encoding="ISO-8859-1"?>
<galleri>
    <image>
        <file>images/billed1.jpg</file>
        <description>billede1</description>
    </image>
    <image>
        <file>images/hej.jpg</file>
        <description>billede2</description>
    </image>
    <image>
        <file>images/bjergtoppe.jpg</file>
        <description>billede3</description>
    </image>
    <image>
        <file>images/solnedgang.jpg</file>
        <description>billede4</description>
    </image>
    <image>
        <file>images/vinter.jpg</file>
        <description>billede5</description>
    </image>
    <image>
        <file>images/aakander.jpg</file>
        <description>billede6</description>
    </image>
</galleri>

som jeg skulle mene er rigtig lavet.
Nu kommer problemet så.
hvordan får jeg det udskrevet i flash? og hvordan connecter jeg med filen?
Hvis der er nogen der lige vil guide igennem og sige hvorfor man gør dit og dat, så ville dte være lækkert ;)
Avatar billede rohaje Nybegynder
21. september 2006 - 00:35 #1
til at starte med altid utf-8 når det er flash:
<?xml version="1.0" encoding="utf-8"?>
<galleri>
    <image>
        <file>images/billed1.jpg</file>
        <description>billede1</description>
    </image>
    <image>
        <file>images/hej.jpg</file>
        <description>billede2</description>
    </image>
    <image>
        <file>images/bjergtoppe.jpg</file>
        <description>billede3</description>
    </image>
    <image>
        <file>images/solnedgang.jpg</file>
        <description>billede4</description>
    </image>
    <image>
        <file>images/vinter.jpg</file>
        <description>billede5</description>
    </image>
    <image>
        <file>images/aakander.jpg</file>
        <description>billede6</description>
    </image>
</galleri>
Avatar billede rohaje Nybegynder
21. september 2006 - 00:47 #2
eksempel på at udpakke xml'en kunne se sådan ud:

_xml = new XML();
_xml.ignoreWhite = true;
_xml.onLoad = function(ok) {
    if (ok) {
        loadImages(this);
    }
};
_xml.load("gallery.xml");
function loadImages(_xml) {
    root_xml = _xml.firstChild;
    for (var r in root_xml.childNodes) {
        billede_xml = root_xml.childNodes[r];
        for (var b in billede_xml.childNodes) {
            if (billede_xml.childNodes[b].nodeName == "file") {
                trace("filen er = "+billede_xml.childNodes[b].firstChild);
            } else if (billede_xml.childNodes[b].nodeName == "description") {
                trace("description er = "+billede_xml.childNodes[b].firstChild);
            }
        }
    }
}
Avatar billede rohaje Nybegynder
21. september 2006 - 00:59 #3
kan være en stor fordel, syndes jeg at omskrive xml til en _array struktur af en slags..
_xml = new XML();
_xml.ignoreWhite = true;
_xml.onLoad = function(ok) {
    if (ok) {
        gallery_array=makeGalleryArray(this);
        testArray(gallery_array);
        // eller bare  testArray(makeGalleryArray(this));
    }
};
_xml.load("gallery.xml");
function makeGalleryArray(_xml) {
    var _array=new Array();
    root_xml = _xml.firstChild;
    for (var r in root_xml.childNodes) {
        var image_obj=new Object();
        billede_xml = root_xml.childNodes[r];
        for (var b in billede_xml.childNodes) {
            trace(billede_xml.childNodes[b].nodeName);
            image_obj[billede_xml.childNodes[b].nodeName]=billede_xml.childNodes[b].firstChild;
        }
        _array.push(image_obj);
    }
    _array.reverse();
    return _array;
}
// der skal selvfølgelig laves en buildGallery function istedet for en test function
function testArray(_array){
    for(var n=0;n<_array.length;n++){
        trace(n+" ----");
        for(var a in _array[n]){
            trace(a+" : "+_array[n][a]);
        }
    }
}
Avatar billede hejmanden Nybegynder
21. september 2006 - 08:01 #4
Det ser jo meget fint ud alt sammen :)
Men jeg forstår ikke en brik af det?
hvad gør for(var r in root_xml.childNodes)
og  _array.push(image_obj);

og denne her function
function testArray(_array){
    for(var n=0;n<_array.length;n++){
        trace(n+" ----");
        for(var a in _array[n]){
            trace(a+" : "+_array[n][a]);
        }
    }
}
Avatar billede rohaje Nybegynder
21. september 2006 - 14:47 #5
for(var r in root_xml.childNodes)
er et loop der løber alle nodes i galleri igennem..

testArray(_array).. er bare en test funktion til at se om du har fået alle dine data fra xml'en ind..

image_obj er temp object hvori alle nodes i image gemmes..

hvert billede bliver så pushet ind i _array'et..
_array.push(image_obj);

.. d.v.s
at din xml bliver oversat til et Array..

i eksemplet  gallery_array

du kan så genkalde data ved f.eks

gallery_array[0].file(som jo i xmlen var images/billed1.jpg)
gallery_array[0].description (i xmlen billede1)

du skal lave en anden funktion end testArray functionen hvor du bruger dit loaded xml-data til noget..
Avatar billede hejmanden Nybegynder
21. september 2006 - 16:26 #6
mange tak, det virker sgu nu :)
Du fortjener ponit:) smid svar
Avatar billede rohaje Nybegynder
21. september 2006 - 19:36 #7
et svar :)
Avatar billede rohaje Nybegynder
21. september 2006 - 22:02 #8
tak for point
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