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
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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.