PDA

Volledige versie bekijken : XML -> number


theFlashWizard
%Europe/Berlin %041 %2005, 02:00
hoi mensjes,
ik ben net begonnen met een btje te romelen met XML.
Ik loop alleen tegen het volgende aan, ik heb in mijn XML een amount beschreven en helaas krijg ik dat niet goed als nummer binnen. zie script/fla voor meer uitleg.

var x:XML = new XML();
x.ignoreWhite = true;
x.onLoad = function(success) {
var A:Number = this.firstChild.childNodes[1].childNodes;
makeTumbs(A)
}
x.load("lostTijd.xml");

function makeTumbs(A){
trace(A) //traced: 5
A = Number(A)
trace(A) //traced: NaN

//A = 5 //als ik dees gebruik werkt de for lus wel.
for(i=0;i<A;i++){
trace(i)
}
}

XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<myData>
<name>lost</name>
<amount>5</amount>
</myData>

ik snap het als jullie het idee achter het script niet snappen maar het is n heel klein voorbeeld van me probleem.
zien jullie me fout of weten jullie een oplossing?
alvast bedankt!

theFlashWizard
%Europe/Berlin %063 %2005, 02:31
toen ik me eige post terug bekeek en het soortgelijke onderwerpen gedeelte ondekte kwam ik bij de 1ste "LoadVars en Number() returnt toch NaN" al de oplossing tegen.. de spatie erachter wissen..
en het werkte zo wel goed:
var x:XML = new XML();
x.ignoreWhite = true;
x.onLoad = function(success) {
var A:String = this.firstChild.childNodes[1].childNodes;
makeTumbs(A)
}
x.load("lostTijd.xml");

function makeTumbs(A){
A = Number(String(A).charAt(0))
trace(A) //traced: 5
for(i=0;i<A;i++){
trace(i)
}
}

wel erg vreemd dat het zo moet.. eerst er een string van maken, en er dan weer een nummer van maken.. maja..

geniale vonds dat soortgelijke onderwerpen.. had ik eerder moete ontdekken.. :P

Roenes
%Europe/Berlin %466 %2005, 12:12
Toch nog even reageren:
x.onLoad = function(success) {
var A:Number = this.firstChild.childNodes[1].childNodes;
makeTumbs(A)
}Volgens mij ligt het in je eerste code aan je eerste regel in je onLoad. Daar staat A als een Number gedefineerd, maar de waarde die binnenkomt is toch zeker een String. Als je om dat geheel een Number() zet Number(this.firstChild.childNodes[1].childNodes) dan zou het voor de rest naar behoren moeten werken :)

theFlashWizard
%Europe/Berlin %742 %2005, 18:49
var x:XML = new XML();
x.ignoreWhite = true;
x.onLoad = function(success) {
var A:Number = Number(this.firstChild.childNodes[1].childNodes)
makeTumbs(A)
}
x.load("lostTijd.xml");

function makeTumbs(A){
//A = Number(String(A).charAt(0))
trace(A) //traced: NaN
for(i=0;i<A;i++){
trace(i)
}
}

zo dus?
sorry krijg NaN :$

Flasher
%Europe/Berlin %750 %2005, 19:00
childNodes is een array, die kan je niet met Number() converteren
probeer dit eens //een extra Number() maakte bij mij geen verschil
var A:Number = this.firstChild.childNodes[1].firstChild.nodeValue;

dat werkte wel (bij mij)

Roenes
%Europe/Berlin %751 %2005, 19:02
childNodes is een array, die kan je niet met Number() converterenGoed gezien! Daar heb ik niet aan gedacht :)

theFlashWizard
%Europe/Berlin %773 %2005, 19:33
ow thnx! ik ook niet..
ik ga denk toch maar eerst die tuturials op kuripupa verder lezen voordat ik hiermee verder ga.. ik weet blijkbaar toch echt nog te weinig..