Avatar billede ncp Nybegynder
03. januar 2004 - 18:03 Der er 11 kommentarer og
2 løsninger

Loade XML fra flash

Er rimlig grøn i XML og har søgt lidt rundt her på exp for at finde nogle svar, men intet af det løser rigtigt mit problem... Jeg har en Xml-fil (se herunder) som skal feede min flash:

<?xml version="1.0" encoding="UTF-8"?>
<Item>
  <Id>350</Id>
  <Image>Battlefield.jpg</Image>
  <Headline>Battlefield+1942+Vietnam+web%2Dsite</Headline>
  <Text>S%E5+er+der+%E5bnet+et+web%2Dsite+der+der+handler+om+fors%E6ttelsen+af+det+popul%E6re+multiplayer+spil+Battlefield+1942+Vietnam%2E%2E%2E</Text>
</Item>
<Item>
  <Id>349</Id>
  <Image>madden.jpg</Image>
  <Headline>DM+i+Madden+2004</Headline>
  <Text>S%F8ndag+den+4+januar+2004+afholdes+1%2E%2E%2E</Text>
</Item>
<Item>
  <Id>335</Id>
  <Image>xiii_1.jpg</Image>
  <Headline>Release+Party+%2D+XIII</Headline>
  <Text>I+g%E5r+var+undertegnede+og+Martin+Klysner+til+release+party+p%E5+spillet+XIII%2E%2E%2E</Text>
</Item>

Og har fået lavet denne kode, som jeg tror er rigtig nok - men hvad skal jeg mere skrive i funktionen for at benytte de informationer fra xml-filen ?

function NewsSplitter() {

        xmlSub = xmlData[1].childNodes;
        test.text = xmlSub;

};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = NewsSplitter;
xmlData.load("newsxml.xml");
Avatar billede ncp Nybegynder
03. januar 2004 - 18:04 #1
Glem den der linje test.text = xmlSub; - det var bare et skævt forsøg på at hente informationerne ud i et tekstfelt...
Avatar billede barklund Nybegynder
03. januar 2004 - 18:29 #2
Din xml er ikke wellformed for du har flere top-level nodes. Det kan flash ikke håndtere... Pak alle dine item-tags ind i en enkelt node:

<?xml version="1.0" encoding="UTF-8"?>
<Items>
<Item>
  <Id>350</Id>
  <Image>Battlefield.jpg</Image>
  <Headline>Battlefield+1942+Vietnam+web%2Dsite</Headline>
  <Text>S%E5+er+der+%E5bnet+et+web%2Dsite+der+der+handler+om+fors%E6ttelsen+af+det+popul%E6re+multiplayer+spil+Battlefield+1942+Vietnam%2E%2E%2E</Text>
</Item>
<Item>
  <Id>349</Id>
  <Image>madden.jpg</Image>
  <Headline>DM+i+Madden+2004</Headline>
  <Text>S%F8ndag+den+4+januar+2004+afholdes+1%2E%2E%2E</Text>
</Item>
<Item>
  <Id>335</Id>
  <Image>xiii_1.jpg</Image>
  <Headline>Release+Party+%2D+XIII</Headline>
  <Text>I+g%E5r+var+undertegnede+og+Martin+Klysner+til+release+party+p%E5+spillet+XIII%2E%2E%2E</Text>
</Item>
</Items>
Avatar billede barklund Nybegynder
03. januar 2004 - 18:32 #3
Og hvilke informationer vil du have ud? Med ovenstående xml er det første id for eksempel:

xmlData.firstChild.firstChild.firstChild.firstChild.nodeValue;

Samme nodes billede er:

xmlData.firstChild.firstChild.firstChild.nextSibling.firstChild.nodeValue;

eller:

xmlData.firstChild.firstChild.childNodes[1].firstChild.nodeValue;

Det næste id er så:

xmlData.firstChild.firstChild.nextSibling.firstChild.firstChild.nodeValue;

eller:

xmlData.firstChild.childNodes[1].firstChild.firstChild.nodeValue;
Avatar billede ncp Nybegynder
03. januar 2004 - 19:12 #4
Har pakket alle <item> ind i <items>, som du skrev, men kan ikke hente informationen ind i et textfelt - bruger følgende kode:

newsId = new Array(15);
picNum = 0;
function NewsSplitter() {

        test.text = "ID: " + xmlData.firstChild.firstChild.childNodes[1].firstChild.nodeValue;

};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = NewsSplitter;
xmlData.load("newsxml.xml");

... kan se den skriver ID: - så den kommer forbi kommandoen
Avatar billede barklund Nybegynder
03. januar 2004 - 19:32 #5
Ikke en items rundt om hver item, men en stor items-tag rundt om alle items.

Hvis jeg gør det, virker din kode fint... Om din xml er wellformed kan du se med:

function NewsSplitter(success) {
    if (success) {
        test.text = "ID: " + xmlData.firstChild.firstChild.childNodes[1].firstChild.nodeValue;
    } else {
        test.text = "Der skete en fejl: "+this.status;
    }
};
Avatar billede ncp Nybegynder
03. januar 2004 - 19:42 #6
Det er også alle <item> som er pakket ind i een <items> - bruger jeg den kode du skrev, skriver den: Der skete en fejl: 0
Avatar billede ncp Nybegynder
03. januar 2004 - 19:45 #7
Nu virker det - stien til xml-filen var ikke helt rigtig - mange tak!
Avatar billede barklund Nybegynder
03. januar 2004 - 20:05 #8
Så smider jeg lige et svar ;)
Avatar billede barklund Nybegynder
03. januar 2004 - 20:05 #9
Men 200 points er lige i overkanten...
Avatar billede ncp Nybegynder
03. januar 2004 - 22:35 #10
Okay, det er op til dig ;)
Avatar billede barklund Nybegynder
03. januar 2004 - 22:52 #11
Hov, et svar ;)
Avatar billede ncp Nybegynder
03. januar 2004 - 23:00 #12
ncp
Avatar billede barklund Nybegynder
03. januar 2004 - 23:32 #13
Tarker - stadig meget men ok ;)
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