21. februar 2005 - 23:14
Der er
19 kommentarer og 1 løsning
lidt hjælp til xml - flash
hvordan henter jeg lettest denne xml ind i flash, så den lister de variabler som er angivet: <news><entry date="her står dato"><title>min titel 1</title><sted>sted 1</sted><body>Program: bla bla bla nummer 1</body></entry><entry date="her står dato nr 2"><title>min titel 2</title><sted>sted 2</sted><body>Program: bla bla bla nummer 2</body></entry></news> der skal vist ændres lidt i denne kode: var max_news_items = 20; GetTitleText = function (news_xml, entry_index) { var entries = news_xml.firstChild.childNodes; var title_element = entries[entry_index].firstChild; return title_element.firstChild.nodeValue; }; GetBodyText = function (news_xml, entry_index) { var entries = news_xml.firstChild.childNodes; var body_element = entries[entry_index].firstChild.nextSibling; return body_element.firstChild.nodeValue; }; GetEntry = function (news_xml, index) { var entries = news_xml.firstChild.childNodes; return entries[index]; }; GetNewsCount = function (news_xml) { var entries = news_xml.firstChild.childNodes; return entries.length; }; ShowNews = function (news_xml) { if (!news_xml.firstChild.hasChildNodes()) { txt1.text = "Ingen koncerter i kalenderen ..."; return (0); } var entries = news_xml.firstChild.childNodes; txt1.txt.text = ""; for (var i = 0; i<entries.length; i++) { var title = GetTitleText(news_xml, i); var body = GetBodyText(news_xml, i); txt1.htmlText += entries[i].attributes.date+"<br>"; txt1.htmlText += titel+"<br><br>"; txt1.htmlText += body+"<br><br>"; txt1.htmlText += "_______________________________<br>"; } }; RefreshNews = function (news_xml) { txt1.htmlText = "<i>Loading...</i>"; news_xml.load(xml_file+"?"+new Date().getTime()); };
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
21. februar 2005 - 23:47
#1
Prøv kort og godt med: GetData = function(entry) { var o = new Object(); o.date = entry.attributes.date; o.title= entry.childNodes[0].nodeValue; o.sted = entry.childNodes[1].nodeValue; o.body = entry.childNodes[2].nodeValue; } ShowNews = function (news_xml) { if (!news_xml.firstChild.hasChildNodes()) { txt1.text = "Ingen koncerter i kalenderen ..."; return (0); } var entries = news_xml.firstChild.childNodes; txt1.txt.text = ""; for (var i = 0; i<entries.length; i++) { var entry = GetData(entries[i]); txt1.htmlText += entry .date+"<br>"; txt1.htmlText += entry.title+"<br><br>"; txt1.htmlText += entry.body+"<br><br>"; txt1.htmlText += entry.sted+"<br><br>"; txt1.htmlText += "_______________________________<br>"; } }; Eller noget i den stil :) -- Morten Barklund
21. februar 2005 - 23:49
#2
joo **Error** Scene=Scene 1, layer=Editing, frame=1:Line 2: Operator '=' must be followed by an operand var o = new Object(); **Error** Scene=Scene 1, layer=Editing, frame=1:Line 3: Syntax error. o.date = entry.attributes.date;
21. februar 2005 - 23:55
#3
... fordi man ikke kan paste fra eksperten p.g.a. mellem rummmene åbenbart.... anyway nu loader den ikke noget ..
22. februar 2005 - 10:24
#4
Du skal jo stadig have noget med: var news_xml = new XML(); RefreshNews = function (news_xml) { txt1.htmlText = "<i>Loading...</i>"; news_xml.load(xml_file+"?"+new Date().getTime()); }; RefreshNews(); Og du skal ved også have en onLoad på din news_xml - som heller ikke var med i det ovenstående. :) -- Morten Barklund
22. februar 2005 - 12:48
#5
hmm: med fgl får jeg loadet dato og sted ind, und nix mehr :-( var xml_file = "readwrite/news.xml"; var save_script = "news_save.php"; var news_xml = new XML(); news_xml.ignoreWhite = true; news_xml.contentType = "text/xml"; news_xml.onLoad = function(success){ if (success) ShowNews(this); else txt1.text = "Error loading XML file"; } RefreshNews(news_xml); var max_news_items = 5; GetTitleText = function (news_xml, entry_index) { var entries = news_xml.firstChild.childNodes; var title_element = entries[entry_index].firstChild; return title_element.firstChild.nodeValue; }; GetBodyText = function (news_xml, entry_index) { var entries = news_xml.firstChild.childNodes; var body_element = entries[entry_index].firstChild.nextSibling; return body_element.firstChild.nodeValue; }; GetEntry = function (news_xml, index) { var entries = news_xml.firstChild.childNodes; return entries[index]; }; GetNewsCount = function (news_xml) { var entries = news_xml.firstChild.childNodes; return entries.length; }; ShowNews = function (news_xml) { if (!news_xml.firstChild.hasChildNodes()) { txt1.text = "No news available."; return (0); } var entries = news_xml.firstChild.childNodes; txt1.text = ""; for (var i = 0; i<entries.length; i++) { var title = GetTitleText(news_xml, i); var body = GetBodyText(news_xml, i); txt1.htmlText += "<b>"+title+"</b><br>"; txt1.htmlText += entries[i].attributes.date+"<br>"; txt1.htmlText += "???????????????????????????????<br>"; txt1.htmlText += body+"<br><br>"; } }; RefreshNews = function (news_xml) { content_txt.htmlText = "<i>Loading...</i>"; news_xml.load(xml_file+"?"+new Date().getTime()); };
22. februar 2005 - 15:12
#6
Hvor gjorde du af den funktion, jeg skrev? Du har jo bare slettet det meste igen? var xml_file = "readwrite/news.xml"; var news_xml = new XML(); news_xml.ignoreWhite = true; news_xml.onLoad = function(success){ if (success) ShowNews(this); else txt1.text = "Error loading XML file"; } RefreshNews(news_xml); var max_news_items = 5; GetData = function(entry) { var o = new Object(); o.date = entry.attributes.date; o.title= entry.childNodes[0].nodeValue; o.sted = entry.childNodes[1].nodeValue; o.body = entry.childNodes[2].nodeValue; } ShowNews = function (news_xml) { if (!news_xml.firstChild.hasChildNodes()) { txt1.text = "Ingen koncerter i kalenderen ..."; return (0); } var entries = news_xml.firstChild.childNodes; txt1.txt.text = ""; for (var i = 0; i<entries.length; i++) { var entry = GetData(entries[i]); txt1.htmlText += entry.date+"<br>"; txt1.htmlText += entry.title+"<br><br>"; txt1.htmlText += entry.body+"<br><br>"; txt1.htmlText += entry.sted+"<br><br>"; txt1.htmlText += "_______________________________<br>"; } }; RefreshNews = function (news_xml) { content_txt.htmlText = "<i>Loading...</i>"; news_xml.load(xml_file+"?"+new Date().getTime()); }; Så skulle den nogenlunde være der. -- Morten Barklund
22. februar 2005 - 15:25
#7
jeg ved ikke hvorfor - men der sker intet - den viser ikke engang "Error loading XML file"
22. februar 2005 - 19:41
#8
Du skal definere funktionerne sædvanligt for at du kan kalde dem før du har skrevet dem: var xml_file = "readwrite/news.xml"; var news_xml = new XML(); news_xml.ignoreWhite = true; news_xml.onLoad = function(success){ if (success) ShowNews(this); else txt1.text = "Error loading XML file"; } RefreshNews(news_xml); var max_news_items = 5; function GetData(entry) { var o = new Object(); o.date = entry.attributes.date; o.title= entry.childNodes[0].nodeValue; o.sted = entry.childNodes[1].nodeValue; o.body = entry.childNodes[2].nodeValue; } function ShowNews(news_xml) { if (!news_xml.firstChild.hasChildNodes()) { txt1.text = "Ingen koncerter i kalenderen ..."; return (0); } var entries = news_xml.firstChild.childNodes; txt1.txt.text = ""; for (var i = 0; i<entries.length; i++) { var entry = GetData(entries[i]); txt1.htmlText += entry.date+"<br>"; txt1.htmlText += entry.title+"<br><br>"; txt1.htmlText += entry.body+"<br><br>"; txt1.htmlText += entry.sted+"<br><br>"; txt1.htmlText += "_______________________________<br>"; } } function RefreshNews(news_xml) { content_txt.htmlText = "<i>Loading...</i>"; news_xml.load(xml_file+"?"+new Date().getTime()); } Prøv den ;) -- Morten Barklund
22. februar 2005 - 19:49
#9
interessant - nu loader den: _______________________________ _______________________________ _______________________________ _______________________________
22. februar 2005 - 19:49
#10
ja, undskyld jeg bruger så meget plads :-)
22. februar 2005 - 20:17
#11
Ret lige til: function GetData(entry) { var o = new Object(); o.date = entry.attributes.date; o.title= entry.childNodes[0].nodeValue; o.sted = entry.childNodes[1].nodeValue; o.body = entry.childNodes[2].nodeValue; return o; } Altså, jeg havde jo glemt at returnere objektet :) -- Morten Barklund
22. februar 2005 - 20:26
#12
returnerer: her står dato _1 null null null _______________________________ her står dato nr 2 null :-(
22. februar 2005 - 20:30
#13
Ih, så retter jeg det da lidt så det er korrekt: function GetData(entry) { var o = new Object(); o.date = entry.attributes.date; o.title= entry.childNodes[0].firstChild.nodeValue; o.sted = entry.childNodes[1].firstChild.nodeValue; o.body = entry.childNodes[2].firstChild.nodeValue; return o; } Jeg sidder jo ikke og tester - skriver bare lige ud i luften :) -- Morten Barklund
22. februar 2005 - 20:38
#14
det gør du så til gengæld rimeligt godt, må jeg sige: her står dato _1 min titel 1 Program: bla bla bla nummer 1 sted 1 _______________________________ her står dato nr 2 osv ... men hvorfor den returnerer body (program) før sted ved jeg ikke
22. februar 2005 - 20:45
#15
I disse linjer: txt1.htmlText += entry.title+"<br><br>"; txt1.htmlText += entry.body+"<br><br>"; txt1.htmlText += entry.sted+"<br><br>"; Angives rækkefølgen. Skal body komme efter sted, så flytter du den bare nedenunder :) -- Morten Barklund
22. februar 2005 - 20:51
#16
pinligst jeg kiggede længe oppe tusind tak for hjælpen, Morten ikke mindst for at have kogt koden ned til noget jeg ..måske ... kan arbejde videre med detteher kan i hvertfald bruge du må gerne smide et "svar"
22. februar 2005 - 20:53
#17
No problemo :)
22. februar 2005 - 20:59
#18
barklund har du en ICQ eller msn / mail adresse - jeg har en forespørgsel til dig
22. februar 2005 - 21:15
#19
ICQ: #85477233
MSN: mbarklund@hotmail.com
Web:
http://actionscript.dk Derudover laver jeg dog overhovedet ikke freelance-opgaver, om det er spørgsmålet :)
22. februar 2005 - 21:15
#20
Og tark for points :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.