1.将xml数据转换成ArrayCollection
for each (var resultXML:XML in event.result..des) //一个点"."是第一层 两个点".."是第二层,..des表示第二层的des属性
{
var o:Object = new Object;
o.id = resultXML.@id //id score classes value 是XML文件中des属性里面的数据
o.score = resultXML.@score
o.classes = resultXML.@classes
o.value = resultXML.@value
dgdp.addItem(o); //dgdp是ArrayCollection类型,把o对象加入到dgdp这个ArrayCollection数组中
}
<s:DataGrid width="300" height="200" requestedRowCount="4" dataProvider="{dgdp}"> //DataGrid 控件,用来显示用
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="id" headerText="id"></s:GridColumn>
<s:GridColumn dataField="score" headerText="score"></s:GridColumn>
<s:GridColumn dataField="classes" headerText="classes"></s:GridColumn>
<s:GridColumn dataField="value" headerText="value"></s:GridColumn>
</s:ArrayList>
</s:columns>
2.ArrayCollection转换成xml
protected function arrToXml():void //把arrayCollection数据转为XML
{
var root:XML = (<root/>) //XML的根节点
for (var i:int=0;i<dgdp.length;i++)
{
var node:XML = new XML(<node/>); //声明子节点,把arrayCollection类型dgdp的数据加入到node里面来
node.id=dgdp[i].id;
node.score=dgdp[i].score;
node.names=dgdp[i].name;
node.value=dgdp[i].value;
root.appendChild(node); //把node加到root上来
}
Alert.show(root.toXMLString());
}
XML文件
<?xml version="1.0" encoding="utf-8"?>
<data value="1">
<data1 id="1" value="1">
<id id="1000" value="2"/>
<name name="xiaoming"value="3"/>
<des id="1000" score="75" classes="1Class" value="4" />
</data1>
<data2 id="2" value="5">
<id id="1001" value="6" />
<name name="xiaoli" value="7" />
<des id="1001" score="85" classes="2Class" value="8" />
</data2>
<data3 id="3" value="9" >
<id id="1002" value="10" />
<name name="xiaoyang" value="11" />
<des id="1002" score="95" classes="1Class" value="12" />
</data3>
<data4 id="4" value="13">
<id id="1003" value="14"/>
<name name="xiaolin" value="15" />
<des id="1003" score="75" classes="2Class" value="16"/>
</data4>
</data>