XmlUtil.as
3.43 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package util
{
import mx.controls.Alert;
import mx.rpc.xml.SimpleXMLEncoder;
import flash.xml.XMLDocument;
import flash.xml.XMLNode
import mx.collections.ArrayCollection;
import mx.rpc.xml.SimpleXMLDecoder;
import mx.utils.ArrayUtil;
public final class XmlUtil
{
/**
*将xmllist转换为Array
* 注意Array里装有VO对象(类似于javabean)
* @param xmllist
* @param classpath
* @return
*
*/
public static function parseXmlToBean(xmllist:XMLList,obj:Object):Boolean{
//var temp4grid:Array=new Array();
try{
//var classReference:Class=Class(getDefinitionByName(classpath));
}catch(err:Error)
{
//Alert.show("1:类名不匹配||modelconfig中实例化||"+err.message);
}
var keys:Array=new Array();
var le:int=xmllist.length();
//Alert.show(le.toString());
var isMore:Boolean=false;
if(le>1)isMore=true;
for(var i:int=0;i<le;i++){
var temp:XML=XML(xmllist[i]);
//var one:Object=new classReference();
if(i==0){//处理第一个
for each(var str:XML in temp.elements() ){
try{
var key:String=str.name();
if(isMore){keys.push(key);}
var xmlvalue:*=temp[key];
if(xmlvalue=="true"){xmlvalue=true;}
else if(xmlvalue=="false"){xmlvalue=false;}
//
//Alert.show(one[key].toString());
obj[key]=xmlvalue;
//Alert.show(one[key].toString());
}
catch(err:Error){Alert.show("2:字段名不匹配||"+err.message);return false;}
}
}else{//处理第一个之后
for(var j:int=0;j<keys.length;j++){
var currentKey:String=keys[j];
obj[currentKey]=temp[currentKey];
}
}
//temp4grid.push(one);
}
return true;
//return temp4grid;
//Alert.show(temp4grid);
}
public static function objectToXML(obj:ArrayCollection,rooName:String):XML
{
/*var qName:QName = new QName(rooName);
var xmlDocument:XMLDocument = new XMLDocument();
var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
var xml:XML = new XML(xmlDocument.toString());
Alert.show("1");
Alert.show(xmlDocument.toString());
*/
var xml:XML = new XML("<root/>");
for(var i:int = 0;i<obj.length;i++){
var node:XML = new XML("<node/>");
node.id = obj[i].name;
node.points = obj[i].points;
//node.sjtitle = arr[i].sjtitle;
//node.kemu= arr[i].kemu;
//node.shijID= arr[i].shijID;
//node.num= arr[i].num;
xml.appendChild(node);
}
//Alert.show(root.toString());
//return root;
return xml;
}
public static function parseXmlToArray(obj:XMLDocument):ArrayCollection
{
/*var qName:QName = new QName(rooName);
var xmlDocument:XMLDocument = new XMLDocument();
var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
var xml:XML = new XML(xmlDocument.toString());
Alert.show("1");
Alert.show(xmlDocument.toString());
*/
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder();
var data:Object = decoder.decodeXML( obj );
var array:Array = ArrayUtil.toArray( data.rows.row );
//Alert.show(array[0].name+array[0].id+array[0].desc);
return new ArrayCollection( array );
//Alert.show(root.toString());
//return root;
}
}
}