# Optimize this xml

**URL:** <https://forum.kirupa.com/t/optimize-this-xml/303343>\
**Category:** Uncategorized\
**Created:** [January 19, 2010, 12:41am UTC](https://forum.kirupa.com/t/optimize-this-xml/303343 "2010-01-19T00:41:39Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rondog](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/rondog/32/2478_2.png) [@rondog](https://forum.kirupa.com/u/rondog)\
**Post date:** [January 19, 2010, 12:41am UTC](https://forum.kirupa.com/t/optimize-this-xml/303343/1 "2010-01-19T00:41:39Z")

</div>

I have an XML file…each node looks like this:

```auto

<?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?

```auto

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;
		}
	}
}

```
