15. oktober 2003 - 08:36
Der er
20 kommentarer og 1 løsning
optimering af xml kode
Kan denne kode gøres mere automatisk eller ER man nød til at skrive det på denne måde ? function getNodeByName(node, tagname){ length = node.childNodes.length; for (var i=0;i<length;i++){ if (node.childNodes[i].nodeType == 1 && node.childNodes[i].nodeName == tagname){ return node.childNodes[i]; } } return null; } function getNodeByNameAndAttribute(node, tagname, attr, attrval){ length = node.childNodes.length; for (var i=0;i<length;i++){ if (node.childNodes[i].nodeType == 1 && node.childNodes[i].nodeName == tagname && node.childNodes[i].attributes[attr]==attrval){ return node.childNodes[i]; } } return null; } function init(xml) { tutorial0 = getNodeByNameAndAttribute(xml, 'tutorial', 'id', '0'); headline = getNodeByName(tutorial0, 'headline').firstChild.nodeValue; menutext1 = getNodeByName(tutorial0, 'menutext1').firstChild.nodeValue; menutext2 = getNodeByName(tutorial0, 'menutext2').firstChild.nodeValue; subh = getNodeByName(tutorial0, 'subh'); stepnumber = getNodeByName(tutorial0, 'stepnumber'); position = getNodeByName(tutorial0, 'position'); coordinatex = getNodeByName(tutorial0, 'coordinatex'); coordinatey = getNodeByName(tutorial0, 'coordinatey'); stepmax = getNodeByName(tutorial0, 'stepmax').firstChild.nodeValue; steptext = getNodeByName(tutorial0, 'steptext'); step0 = getNodeByName(steptext, 'step0').firstChild.nodeValue; step1 = getNodeByName(steptext, 'step1').firstChild.nodeValue; step2 = getNodeByName(steptext, 'step2').firstChild.nodeValue; step3 = getNodeByName(steptext, 'step3').firstChild.nodeValue; step4 = getNodeByName(steptext, 'step4').firstChild.nodeValue; step5 = getNodeByName(steptext, 'step5').firstChild.nodeValue; number1 = getNodeByName(stepnumber, 'number1').firstChild.nodeValue; number2 = getNodeByName(stepnumber, 'number2').firstChild.nodeValue; number3 = getNodeByName(stepnumber, 'number3').firstChild.nodeValue; number4 = getNodeByName(stepnumber, 'number4').firstChild.nodeValue; number5 = getNodeByName(stepnumber, 'number5').firstChild.nodeValue; pos1 = getNodeByName(position, 'pos1').firstChild.nodeValue; pos2 = getNodeByName(position, 'pos2').firstChild.nodeValue; pos3 = getNodeByName(position, 'pos3').firstChild.nodeValue; pos4 = getNodeByName(position, 'pos4').firstChild.nodeValue; pos5 = getNodeByName(position, 'pos5').firstChild.nodeValue; corx1 = getNodeByName(coordinatex, 'corx1').firstChild.nodeValue; corx2 = getNodeByName(coordinatex, 'corx2').firstChild.nodeValue; corx3 = getNodeByName(coordinatex, 'corx3').firstChild.nodeValue; corx4 = getNodeByName(coordinatex, 'corx4').firstChild.nodeValue; corx5 = getNodeByName(coordinatex, 'corx5').firstChild.nodeValue; cory0 = getNodeByName(coordinatey, 'cory0').firstChild.nodeValue; cory1 = getNodeByName(coordinatey, 'cory1').firstChild.nodeValue; cory2 = getNodeByName(coordinatey, 'cory2').firstChild.nodeValue; cory3 = getNodeByName(coordinatey, 'cory3').firstChild.nodeValue; cory4 = getNodeByName(coordinatey, 'cory4').firstChild.nodeValue; cory5 = getNodeByName(coordinatey, 'cory5').firstChild.nodeValue; sub0 = getNodeByName(subh, 'sub0').firstChild.nodeValue; sub1 = getNodeByName(subh, 'sub1').firstChild.nodeValue; sub2 = getNodeByName(subh, 'sub2').firstChild.nodeValue; sub3 = getNodeByName(subh, 'sub3').firstChild.nodeValue; sub4 = getNodeByName(subh, 'sub4').firstChild.nodeValue; sub5 = getNodeByName(subh, 'sub5').firstChild.nodeValue; }
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.
15. oktober 2003 - 09:58
#1
Vis os din xml (evt. med et link) samt hvilke værdier du skal have ud og i hvilket format. Det kan i allerhøjeste grad gøres nemmere :)
15. oktober 2003 - 10:11
#2
15. oktober 2003 - 10:16
#3
I dette eks. er der 5 step i id0 og 1 men det kune lige så godt være 10 og 20 steps !
16. oktober 2003 - 08:19
#4
Barklund - du skrev at det i allerhøjeste grad kunne gøres nemmere - har du et kort bud på hvordan eller kan du fortælle hvilken vej jeg skal søge .... /lars
16. oktober 2003 - 09:18
#5
Du har lidt misforstået konceptet i XML - så jeg skriver lige XML'en om for dig og laver en hurtigt parser...
16. oktober 2003 - 09:20
#6
Eller forresten.. må jeg lave om på XML-strukturen? For den er slet ikke optimal...
16. oktober 2003 - 09:26
#7
Jeg kunne forstille mig at du cil lave dem om til noget i retning af: <tutorial id="1"> <menuitems> <headline>1 Support System</headline> <menutext1>1 Help</menutext1> <menutext2>1 Tutorials</menutext2> </menuitems> <step1> <subheadline>Open lotus notes</subheadline> <steptext>Click on the lotus notes icon on your desktop</steptext> <stepnumber>Step 1 of 4</stepnumber> </step1> <step2> <subheadline>Open mail folder</subheadline> <steptext>Click on the mail icon</steptext> <stepnumber>Step 2 of 4</stepnumber> </step2> og det vil være helt o.k - mit problem har hidtil været at få dataerne ind i flash - og på de rigtige pladser - vil det hjælpe dig at få fla filen ?
16. oktober 2003 - 09:29
#8
Yup, det er tættere på, men du skal ikke kalde dine steps for step1 osv, men derimod step <step_id="1"> for de beskriver jo samme type data og bør derfor have samme node navn.
16. oktober 2003 - 09:36
#9
Jeg har lagt fla filen samme sted som det andet , giv lige besked når du har hentet det så jeg kan slette det igen. filen hedder wss_14.fla
16. oktober 2003 - 09:44
#10
Do you got it !
16. oktober 2003 - 09:47
#11
Jeg har lavet min egen lille fil :)
16. oktober 2003 - 10:05
#12
Her ligger filerne:
http://actionscript.dk/eksperten/larsbaun/ Sådan her kan du bruge filen - Efter load vil du kunne:
tutorial = tutParser_xml.getTut(1);
og så har du:
tutorial.id = "1"
tutorial.headline = "Support System"
tutorial.menutexts = ["", "Menu", "Tutorials"]
tutorial.steps[1].id = "1"
tutorial.steps[1].sub = "Welcome"
tutorial.steps[1].step = "Turn on the computer @NewLine og så prøver vi med et linie skift!"
tutorial.steps[1].number = "Step 1 of 5"
tutorial.steps[1].position = "upperleft"
tutorial.steps[1].corx = "0"
tutorial.steps[1].cory="0"
osv...
/Barklund
16. oktober 2003 - 10:24
#13
Jeg kan ikke få dataerne ind i flash eller ud på scenen så jeg kan se dem .... Hvordan gør du hvis du på skærmen vil lave et movieclip med tutorial.steps[1].sub = "Welcome"
16. oktober 2003 - 10:29
#14
Tilføjer nederst i onLoad: myCustomFunction(); Og til sidst definerer du denne: function myCustomFunction() { tutorial = tutParser_xml.getTut(1); myTextField.text = tutorial.steps[1].sub; }
16. oktober 2003 - 10:50
#15
Jeg har prøvet at arbejde vidre med dit eks. men kan ikke få det til at virke ! Det virker som om at xml ikke bliver hentet ? Kan du lavet et eks der viser at en tekst bliver hentet med den nye xml ?
16. oktober 2003 - 11:23
#16
Barklund - jeg vil meget gerne give dig point - men kan du vise hvordan du gør eller skrære det lidt mere ud i pap ? En fla fil der viser det vil være være kanon ?
16. oktober 2003 - 11:37
#17
lidt senere... er lige lidt stresset... en gang over frokost, okay? ;)
20. oktober 2003 - 19:39
#18
Nu har jeg spist frokost (et par gange) og har nu tilføjet nedenstående eksempel funktion til filen (samme url som før): function testFunction() { var tut0 = tutParser_xml.getTut(0) var tut1 = tutParser_xml.getTut(1) my_txt.text = tut0.menutexts[1]; my_txt.text += "\n "+tut0.steps[1].sub; my_txt.text += "\n "+tut0.steps[2].sub; my_txt.text += "\n "+tut0.steps[3].sub; my_txt.text += "\n "+tut0.steps[4].sub; my_txt.text += "\n "+tut0.steps[5].sub; my_txt.text += "\n\n"+tut1.menutexts[1]; my_txt.text += "\n "+tut1.steps[1].sub; my_txt.text += "\n "+tut1.steps[2].sub; my_txt.text += "\n "+tut1.steps[3].sub; my_txt.text += "\n "+tut1.steps[4].sub; my_txt.text += "\n "+tut1.steps[5].sub; } Og som du kan se, så skriver den fint det hele ud i tekstfeltet ;) /Barklund
22. oktober 2003 - 08:09
#19
Tak for din hjælp , jeg har tjekket at det virker og nu bliver teksten parset flot ind i flash så jeg arbejder vidre på sagen . See U
22. oktober 2003 - 14:43
#20
OK :)
22. oktober 2003 - 14:43
#21
Tark for points :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.