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>
Partager