Avatar billede mgade Nybegynder
21. maj 2007 - 22:19 Der er 9 kommentarer og
1 løsning

XML leverer streng der ikke vil konverteres til nummer. (nodeValu

jeg har XMLen:
<images><image><url>DSC00619.JPG</url><nrframes>58</nrframes></image></images>

Jeg kan hente url og nrframes og skrive det i et tekstfelt:
_root.message_mc.messageout=
  myXml.childNodes[0].childNodes[currentImage].childNodes[0]
  + " " +
  myXml.childNodes[0].childNodes[currentImage].childNodes[1];

Det går fint og skriver: "DSC00619.JPG 58"

Men jeg kan IKKE sætte en variabel sådan:
  _root.mgcounter =
  myXml.childNodes[0].childNodes[currentImage].childNodes[1];

parseInt parseFloat Number .nodeValue er forsøgt (mistænker at det er nodeValue der skal anvendes, meeennn??)
Avatar billede mgade Nybegynder
21. maj 2007 - 22:45 #1
_root.mgcounter = parseFloat(myXml.childNodes[0].childNodes[currentImage].childNodes[1].childNodes[0]);
Avatar billede mgade Nybegynder
21. maj 2007 - 22:45 #2
De gale mennesker..
Avatar billede barklund Nybegynder
21. maj 2007 - 23:12 #3
Det er der intet unaturligt i - selve teksten er en node under <nrframes>-noden - derfor en sidste child-node. Men childNodes[0] kan nu skrives lidt mere forståeligt som firstChild - i alle situationer :)
Avatar billede mgade Nybegynder
21. maj 2007 - 23:28 #4
Jeg synes nu det er liiidt sort - men som regel er det jo bare et spørgsmål om at se det tit nok, så begynder det at blive rutine :-)

De folk der skriver hjælpefilen skulle også skydes snarest!

Tager firstChild et nummer? Altså hvis det er 8. barn mab vil have fat i?
Avatar billede barklund Nybegynder
22. maj 2007 - 09:52 #5
Nejnej, childNodes bruges til at hente et bestemt barn efter nummer. firstChild kan hente lige akkurat første barn. Og lastChild henter sidste barn. Og nextSibling henter næste "søskende"-node. Og previousSibling henter forrige søskende-node... :)
Avatar billede mgade Nybegynder
22. maj 2007 - 10:11 #6
Ja, det var også noget i den retning jeg havde fanget. Det der så ærgrer the shit ud af mig er egentligt at man skal ligge og styre om det ene eller det andet tag har dette eller hint nummer. Man kan jo da "ignorewhite eller hvad det nu er (og det gør jeg), men hvorfor ikke bare gå til nrframes-tagget fx. Hvorfor stave sig frem gennem en arbitrær rækkefølge (og padde ud med tomme tags for at den kan finde det rigtige.

Altså <tag1>data1</tag1><tag2>data2</tag2>
Hvis tag1 ikke er tilstede finder en give childNodes[0] tag2, og childNodes[1] er udefineret. Så for at finde data2 skal man have xml: <tag1></tag1><tag2>data2</tag2> og stadig bede om childNodes[1]. Hvorfor ikke bare childNodes["tag2"] eller sådan noget. Hvis du fikser DEN er der 60 points og ellers en undskyldning for at flogge en død hest :-)
Avatar billede barklund Nybegynder
22. maj 2007 - 10:56 #7
XPath er svaret:

import com.xfactorstudio.xml.xpath.XPath;
var my_xml:XML = new XML("<outer><tag1>data1</tag1><tag2>data2</tag2></outer>");
var data:String = XPath.selectSingleNode(my_xml, "//tag2/text()").nodeValue;

http://www.xfactorstudio.com/

--
Morten Barklund
Avatar billede mgade Nybegynder
22. maj 2007 - 11:20 #8
Oho! Third-party? Det ser betydeligt mere elegant ud! Jeg har hentet den og gir den et shot. Tak for det link! Bruger du den selv? Skal man stadig oprette et nyt spørgsmål a la "Points til barklund" for at give ekstra points?
Avatar billede barklund Nybegynder
22. maj 2007 - 12:08 #9
* Third-party, ja - men AS3 har E4X, hvilket er superfrækt!

* Ja, jeg bruger den selv.

* Ja, du er nødt til at oprette et nyt spørgsmål.

:)

--
Morten Barklund
Avatar billede mgade Nybegynder
22. maj 2007 - 12:37 #10
Done om et minut. Tak igen!
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