IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Problème récupération uint et date avec e4x


Sujet :

Flex

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Points : 55
    Points
    55
    Par défaut Problème récupération uint et date avec e4x
    Bonjour,

    je viens vers vous car dans le cadre d'une fonction de parsing d'un xml, j'ai était amené a récupérer des dates, et des couleurs.

    le stockage du xml se faisant en string des fonctions ont été necessaires.

    mais ce qui m'étonne, c'est que lorsque que je fait un alert par exemple pour voir le contenu d'un noeud xml, voici le résultat:

    Alert.show(item.color as String) ==> aucun affichage alerte vide
    Alert.show(' ' + item.color as String) ==> affichage: ' 0xfffffff'.

    Pourqoi faut-il concaténer la valeur du xml avec un autre string pour que l'affichage soit correct.

    j'espère avoir été clair, en tout cas je vous met le code en dessous. Aucun problème urgent, mais j'aimerai comprendre car pour moi aucune raison de devoir rajouter ce string.

    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    	layout="absolute"
    	creationComplete="load()">
     
    	<mx:Script>
    		<![CDATA[
    			import mx.formatters.DateFormatter;
    			import flash.sampler.NewObjectSample;
    			import  packVO.CalendarEvent;
    			import mx.controls.Alert;
    			import mx.collections.ArrayCollection;
     
    			public function load():void{
     
    				var arrayCol:ArrayCollection;
     
    				arrayCol = parseToArray(myXML);
     
    				Alert.show( (arrayCol.getItemAt(arrayCol.length-1) as CalendarEvent).color.toString());
     
    			}
     
    			public function parseToArray(source:XML):ArrayCollection{
     
    				var appVO:CalendarEvent;
    				var events:ArrayCollection = new ArrayCollection();
    				var startValue:String;
    				var endValue:String;
     
    				for each( var item:XML in source.event){
     
    					appVO = new CalendarEvent();
    					appVO.summary = item.summary as String;
    					appVO.description = item.description as String;
    					appVO.location = item.location as String;
    					appVO.color = new uint(' ' + item.color);
    				  	startValue = ' ' + item.startRange as String;
    					endValue = ' ' + item.endRange as String; 
    					appVO.start = stringToDate(startValue);
    					appVO.end = stringToDate(endValue);
    			 		appVO.allDay = item.allDay as Boolean;
     
    					events.addItem(appVO);
     
    				}
     
    			return events;
     
    			}
     
    			public function stringToDate(value:String):Date{
     
    				var dateString:String = value;
    				var array:Array = dateString.split('-'); 
    				var dateDate:Date = new Date(array[2],array[1],array[0],array[3]?array[3]:'0',array[4]?array[4]:'0');
     
    				return dateDate;
     
    			}
     
    			public var myXML:XML = 
    				<calendarEvent>
    					<event>
    						<summary> Personal event </summary>
    						<location> At Home </location>
    						<description> Description de l'event Personal event </description>
    						<allDay> true </allDay>
    						<startRange> 18-07-2009-10-30 </startRange>
    						<endRange> 19-07-2009 </endRange>
    						<color> 0xffffff </color>
    					</event>
    					<event>
    						<summary> Personal event </summary>
    						<location> At Home </location>
    						<description> Description de l'event Personal event </description>
    						<allDay> false </allDay>
    						<startRange> 25-07-2009-10-30 </startRange>
    						<endRange> 25-07-2009 </endRange>
    						<color> 0xffffff </color>
    					</event>
    				</calendarEvent>
     
     
    		]]>
    	</mx:Script>
     
     
     
    </mx:Application>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Salut,

    Je crois que lorsque tu fais ""+monEntier, le compileur va appeler le toString() de monEntier. Ce qui voudrait dire que le monEntier as String n'appelle pas le toString() et fait mal la conversion.
    Conclusion : Utiliser le toString() je crois.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Essais ces trois méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      trace( myXML.event[0].color ) ;
      trace( ( myXML.event[0].color as String ) ) ;
      trace( String( myXML.event[0].color ) ) ;
    Tu verras que seul le as renvoie null... Pourquoi ?
    Simplement parce que le as effectue une vérification du type de la variable. Comme color n'est pas de type String le as renvoie null.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Points : 55
    Points
    55
    Par défaut
    Oki, merci bien pour vos explications

    @ plus tard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème récupération d'un objet avec WCF
    Par pivox dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 10/05/2014, 23h46
  2. Problème de tri sur date avec ADO - ACCESS
    Par lorenzodelphi dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/09/2013, 08h28
  3. j'ai un problème de formatage de date avec Mysql
    Par kanebody dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/09/2009, 10h24
  4. Problème de filtre sur date avec ADOQuery
    Par lingli dans le forum Bases de données
    Réponses: 12
    Dernier message: 30/04/2006, 15h40
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo