I have an XML file…each node looks like this:
<?xml version="1.0" encoding="utf-8"?>
<HomefinderData>
<Home>
<Images>
<Image>/media/635163/j patrick asbury e1.jpg</Image>
<Image>/media/635164/j patrick asbury e2.jpg</Image>
<Image>/media/635165/j patrick asbury e3.jpg</Image>
</Images>
<Floorplans>
<Floorplan>/media/635166/j patrick asbury f1.jpg</Floorplan>
<Floorplan>/media/635167/j patrick asbury f2.jpg</Floorplan>
</Floorplans>
<ModelName>Asbury (4007)</ModelName>
<ModelBuilder>J. Patrick Homes</ModelBuilder>
<ModelAddress></ModelAddress>
<ModelIsFurnished>No</ModelIsFurnished>
<ModelNewConstruction>No</ModelNewConstruction>
<ModelSquareFeet>4007</ModelSquareFeet>
<ModelBedrooms>4</ModelBedrooms>
<ModelBathrooms>3.5</ModelBathrooms>
<ModelFloors>2.0</ModelFloors>
<ModelPricedFrom>$358,990</ModelPricedFrom>
<ModelSalesRep></ModelSalesRep>
<ModelAvailable></ModelAvailable>
</Home>
</HomefinderData>
This is my XML loader…This works for now, but I dont like all the children().children() blah blah stuff…is their a simpler way of parsing this?
package com.ronihicks.xml
{
import flash.events.*;
import flash.net.*;
import flash.xml.*;
public class XMLLoader extends EventDispatcher
{
private var loader :URLLoader;
private var xmlList :XMLList;
private var xml :XML;
public var data :Array;
public function XMLLoader(xmlPath:String)
{
loader = new URLLoader();
loader.load(new URLRequest(xmlPath));
loader.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(event:Event):void
{
xml = new XML(loader.data);
xmlList = new XMLList(xml.Home);
data = new Array();
for (var i:int = 0; i < xmlList.length(); i++)
{
var temp:Object = new Object();
var node:XML = xmlList*;
temp.images = new Array();
for (var j:int = 0; j < node.children()[0].children().children().length(); j++)
{
temp.images.push(node.children()[0].children().children()[j]);
}
temp.floorPlans = new Array();
for (var k:int = 0; k < node.children()[1].children().children().length(); k++)
{
temp.floorPlans.push(node.children()[1].children().children()[k]);
}
temp.ModelName = node.children()[2].children();
temp.ModelBuilder = node.children()[3].children();
temp.ModelAddress = node.children()[4].children();
temp.ModelIsFurnished = node.children()[5].children();
temp.ModelNewConstruction = node.children()[6].children();
temp.ModelSquareFeet = node.children()[8].children();
temp.ModelBedrooms = node.children()[9].children();
temp.ModelBathrooms = node.children()[10].children();
temp.ModelFloors = node.children()[11].children();
temp.ModelPricedFrom = node.children()[12].children();
temp.ModelSalesRep = node.children()[13].children();
temp.ModelAvailable = node.children()[14].children();
data.push(temp);
}
dispatchEvent(new Event(Event.COMPLETE));
}
public function getXMLdata():Array
{
return data;
}
}
}