我正在阅读一个XML文件,其中树的一个分支如下所示:
<data id="Shallow" label="Show Shallow Imagery (1 m)">
<layer name="Bathymetry" url="OtherImagery" type="Dynamic" legendurl="">
<visiblelayers>1</visiblelayers>
<visiblelayers>4</visiblelayers>
</layer>
<layer name="Backscatter" url="OtherImagery" type="Dynamic" legendurl="">
<visiblelayers>2</visiblelayers>
</layer>
<layer name="PCA" url="BUIS_Imagery" type="Dynamic" legendurl="">
<visiblelayers>3</visiblelayers>
<visiblelayers>4</visiblelayers>
</layer>
</data>
用户使用radiobutton选择图层,在click事件中,我将图层(@ name == e.target.label).visiblelayers传递给将XML转换为ArrayCollection的函数。
private function convertXMLtoArrayCollection(file:XMLList):ArrayCollection{
var xml:XMLDocument = new XMLDocument(file);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder;
var data:Object = decoder.decodeXML((xml));
var array:Array = ArrayUtil.toArray(data);
return new ArrayCollection(array);
}
对于只有一个visiblelayers节点的“Backscatter”层,我得到了预期的ArrayCollection返回。
但是其他两个层返回一个ArrayCollection,其中添加了visibleLayers节点。
为什么不返回像这样的ArrayCollection?
答案 0 :(得分:3)
我最终使用以下函数返回一个适合我的代码的ArrayCollection:
private function convertXMLtoArrayCollection1(file:XMLList):ArrayCollection
{
var arrcol:ArrayCollection = new ArrayCollection;
for each (var value:* in file)
{
arrcol.addItem(value)
}
return arrcol;
}
答案 1 :(得分:0)
要在ActionScript示例中将XML转换为ArrayCollection或Array,请访问以下链接,并通过示例进行说明。
在ActionScript示例中将XML转换为ArrayCollection或Array http://javafws.blogspot.in/2013/12/xml-to-arraycollection-or-array-in.html