Fichier XML et typage de données

Fichier XML et typage de données - Flash/ActionScript - Programmation

Marsh Posté le 03-03-2007 à 11:25:27    

Bonjour,
 
J'utilise un fichier XML pour stocker des nombres. L'importation se fait sans problèmes, sauf qu'il ne les reconnaît aps comme nombre, mais comme chaîne de caractères. Avez-vous une idée ?
 
Ci-dessous un extrait de la classe, et du code
 

Code :
  1. class Parametre {
  2. private var liste = new Object();
  3. function Parametre() {
  4.  chargerParametre();
  5. }
  6. function chargerParametre():Void {
  7.  var instance = this;
  8. // Création d'un objet XML
  9.  var doc:XML = new XML();
  10. // On ignore les balises vides
  11.  doc.ignoreWhite = true;
  12. // On charge le fichier
  13.  doc.load("XML/parametre.xml" );
  14. // Parcours du document XML
  15.  doc.onLoad = function() {
  16.   instance.liste.profondeur = doc.firstChild.childNodes[0].childNodes;
  17.  }
  18. }
  19. /* Retourne un parametre de type nombre
  20. ----------------------------------------------------------------*/
  21. public function paramNbr(p:String):Number {
  22.  var instance = this;
  23.  switch(p){
  24.   case 'profondeur' : return instance.liste.profondeur;
  25.   default : return 0;
  26.  }
  27. }


 
dans le script principal :
 

Code :
  1. var _param:Parametre;
  2. _param = new Parametre();
  3. var profondeur:Number = _param.paramNbr("profondeur" );


 
trace(profondeur); donne bien le chiffre attendu
 
Par contre, trace(pronfondeur + 10) donne NaN
 
Merci de votre aide,
Benjamin


Message édité par bepimaco le 03-03-2007 à 11:27:36
Reply

Marsh Posté le 03-03-2007 à 11:25:27   

Reply

Marsh Posté le 03-03-2007 à 19:50:31    

et avec ça ?
instance.liste.profondeur:Number = etc ....
 
sinon y'a une fonction pour convertir me semble-t-il.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 05-03-2007 à 09:21:55    

Code :
  1. instance.liste.profondeur = doc.firstChild.childNodes[0].childNodes;


 
primo, tu parses pas bien, c'est plutôt :
 

Code :
  1. instance.liste.profondeur = doc.firstChild.childNodes[0].firstChild.nodeValue;


 
deuxio, ça retourne toujours une string, il faut caster en Number:
 

Code :
  1. instance.liste.profondeur = Number(doc.firstChild.childNodes[0].firstChild.nodeValue);

Reply

Marsh Posté le 05-03-2007 à 09:27:40    

merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed