I’m trying to populate a datagrid via an external xml file. i’ve gotten a good ways into it but have hit a stumbling block that i can’t get past when it comes to using the child nodes to populate the datagrid. thanks to wiki for the initial code and TreeHugger for the XMLList option.
here is the as3 code…
import fl.controls.DataGrid;
import fl.data.DataProvider;
// --------------------- DataGrid init ----------------------------
var data_grid:DataGrid = new DataGrid();
data_grid.addColumn(“Date”);
data_grid.addColumn(“Credit”);
data_grid.addColumn(“Debit”);
var col3 = data_grid.addColumn(“Master”);
var col4 = data_grid.addColumn(“Desc”);
col3.minWidth = 150
col4.minWidth = 200;
data_grid.width = 650;
data_grid.rowCount = 5;
data_grid.move(30, 40);
addChild(data_grid);
// ------ DataProvider and XML loading code
var dp:DataProvider;
var [COLOR=#0000ff]url:String[/COLOR] = “sortTest3.xml”;
var request:URLRequest = new URLRequest(url);
var url_loader:URLLoader = new URLLoader();
url_loader.addEventListener(Event.COMPLETE, completeHandler);
url_loader.load(request);
function completeHandler(event:Event):void {
var ldr:URLLoader = event.currentTarget as URLLoader;
// create XML datastructure from loaded XML
var xmlDP:XML = new XML(ldr.data);
var testList:XMLList = xmlDP.APR.children();
var testString:String = testList.toXMLString();
testString = "<April>"+testString+"</April>";
var NewXML:XML = new XML(testString);
dp = new DataProvider(NewXML);
data_grid.dataProvider = dp;
}
when the XML is structed like this, it works great.
<list>
<APR>
<detail Date=“04/01/09” Credit=“0.00” Debit=“494.00” Master=“Bank of America” Desc=“FiOS” />
<detail Date=“04/10/09” Credit=“0.00” Debit=“154.00” Master=“Bank of America” Desc=“Outback Steakhouse” />
</APR>
</list>
if i change the XML to this…
<list>
<rep>
<APR>
<detail Date=“04/01/09” Credit=“0.00” Debit=“494.00” Master=“Bank of America” Desc=“FiOS” />
<detail Date=“04/10/09” Credit=“0.00” Debit=“154.00” Master=“Bank of America” Desc=“Outback” />
</APR>
</rep>
</list>
and the XMLList var to this…
var testList:XMLList = xmlDP.rep.APR.children();
it does not work. i’ve tried using various combinations of children, chilNodes, etc but obviously i’m not hitting the right code! any help would be greatly appreciated as i need what little sanity i have left. Thank You!