Copy link to clipboard
Copied
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Copy link to clipboard
Copied
its been a year since there was any activity on this thread so, is the question answered ?
if not... you can you an intermediate array and push elements one by one inside it and the convert this array into arraycollection.
Copy link to clipboard
Copied
This works partiallly but it keeps all the XML Node names?? AND WHEN USED WITH A DATAGRID SEARCH iT BLOW UP IN FLEX
so help would still be nice
myData = new ArrayCollection(mx.utils.ArrayUtil.toArray(xmlStudents));
I found it on:
http://www.flexdeveloper.eu/forums/actionscript-3-0/converting-xml-to-arraycollection/
I ultimately needed it for this code examples:
HOW TO SEARCH A DATAGRID?
http://www.flex-blog.com/arraycollection-filter-example/
Thanks.
Doug Lubey of Louisiana
SEARCH ENGINE REFERENCE:
flex4 datagrid search filter 2010
flex4 datagrid search filter columns
flex4 datagrid example with search filters
adobe flex4 convert fx:XMLList to arraylist
flex4 convert XMLList to arraylist
flashbuilder4 convert xml to arraylist
flex xml to arraylist
convert xmllist to arraycollection in flex
Implicit coercion of a value of type XMLList to an unrelated type mx.collections:ArrayList
Copy link to clipboard
Copied
Hi,
Here is the code which converts XMLList to an arraycollection...
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.xml.SimpleXMLDecoder;
private var acAllNodes:ArrayCollection;
private var acOpenNodes:ArrayCollection;
private function init():void
{
convertXmlListToArrayCollection();
}
private function convertXmlListToArrayCollection():void
{
var strXML:String = dpNodes.toXMLString();
strXML = "<root>" + strXML + "</root>";
var xml:XML = new XML(strXML);
var xmlDoc:XMLDocument = new XMLDocument(xml);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
var resultObj:Object = decoder.decodeXML(xmlDoc);
acAllNodes = new ArrayCollection();
if(resultObj.root.hasOwnProperty("items"))
{
if(resultObj.root.items is ArrayCollection)
{
acAllNodes = resultObj.root.items;
}
else if(resultObj.root.items is Object)
{
acAllNodes.addItem(resultObj.root.items);
}
}
}
]]>
</mx:Script>
<mx:XMLListCollection id="dpNodes">
<mx:source>
<mx:XMLList>
<items name="total">
<item name="value1" percentage="35"/>
<item name="value2" percentage="25"/>
<item name="value3" percentage="47"/>
<item name="value4" percentage="89"/>
</items>
<items name="somesub">
<item name="value1" percentage="15"/>
<item name="value2" percentage="27"/>
<item name="value3" percentage="56"/>
<item name="value4" percentage="43"/>
</items>
</mx:XMLList>
</mx:source>
</mx:XMLListCollection>
</mx:Application>
If this post answers your question or helps, please kindly mark it as such.
Thanks,
Bhasker Chari
Copy link to clipboard
Copied
Bhasker,
YES your solution worked...thanks.
It does appear to be customized for each Xml document which uses different node names. Took me 5 minutes to figure out your XML Set started with "items" where as mine started with "student"...thanks.
other than it worked perfectly:
var strXML:String = xmlStudents.toXMLString();
strXML =
"<root>" + strXML + "</root>";
//Alert.show(strXML, 'Alert Box', mx.controls.Alert.OK);
var xml:XML = new XML(strXML);
var xmlDoc:XMLDocument = new XMLDocument(xml);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
var resultObj:Object = decoder.decodeXML(xmlDoc);
myData =
new ArrayCollection();
if(resultObj.root.hasOwnProperty("student"))
{
if(resultObj.root.student is ArrayCollection)
{
myData = resultObj.root.student;
}
else if(resultObj.root.student is Object)
{
myData.addItem(resultObj.root.student);
}
}
HERE IS MY fx:XMLLIST I based
<fx:XMLList id="xmlStudents">
<student>
<id>1</id>
<name>Christina Coenraets</name>
<phone>555-219-2270</phone>
<email>ccoenraets@fictitious.com</email>
<active>true</active>
<image>images/arrow_icon_sm1.png</image>
</student>
</fx:XMLList>
Copy link to clipboard
Copied
Hi AICC,
I am glad it worked for you....Have a happy coding..![]()
Thanks,
Bhasker
Copy link to clipboard
Copied
How i can do. if i want also childern from xml list.
if i am doing same way you show here and bind with tree its only give me the parent node its not give to me the childerns.
i stuck with my tree please let me know the solution.
thanks in advanced
Copy link to clipboard
Copied
here is a way to convert it
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more