(AS2, CS4 Pro) XmlNode.attributes data issue

I am trying to restructure some xml data into objects in a way where I can access the data more like I would using E4X. Just trying to simplify and abstract the way I organize it. What I’m having problems with is that when I return an XMLNode.attributes property object it is adding a new property/subobject to the new and even the original data with NaN or undefined names and values. I even duplicated the XML Object and can’t figure out why it would be picking up the new values. I’m stumped here.

Here is my original xml:

<?xml version='1.0' encoding='ISO-8859-1'?>
<Root>
	<Settings Editable="yes" DefaultCategory="0" DefaultPlatform="mac" projectName="WB Wizard" >0</Settings>
	<Channels>
		<Channel Disabled="no" Content="1" Pref="0" Store="0" Share="0" Icon="0" Name="Business" ID="0" >0</Channel>
		<Channel Disabled="no" Content="1" Pref="0" Store="0" Share="0"	Icon="0" Name="Nutrition" ID="1" >0</Channel>
	</Channels>
	<Movies>
		<Movie folderPath="default" urlPath="22" ID="1" >0</Movie>
		<Movie folderPath="default" urlPath="14" ID="2" >0</Movie>
		
	</Movies>
	<Categories>
		<Category Name="Default">
			<c >0</c>
			<c >1</c>
		</Category>
		<Category Name="Medical">
			<c >0</c>
			<c >1</c>
   		</Category>
		<Category Name="Corporate">
			<c >0</c>
			<c >1</c>
	   </Category>
	</Categories>
</Root>

here is my ActionScript pertaining to it:

//setup for loading data from xml db

var docDataPath:String = "data.xml";
var docData1:XML = new XML();
docData1.ignoreWhite = true;
var docDataCon = new XMLSocket();
var docData1;
var attribVar1;
docData1.load(docDataPath);
dataOM = new Object();

//function for organizing xml data into AS OM (translator)

docData1.onLoad = function() {
	docData = docData1;
	docDataCon = docData;
	//trace(docData+"
");

	for (i=0; i<docData.firstChild.childNodes.length; i++) {

		var childNameVar1:String = docData.firstChild.childNodes*.nodeName;
		dataOM[childNameVar1] = docData.firstChild.childNodes*.attributes;

		trace(docData1.firstChild.childNodes*.nodeName+" is "+docData1.firstChild.childNodes*+"
");
		if (docData.firstChild.childNodes*.hasChildNodes()) {
			for (n=0; n<docData.firstChild.childNodes*.childNodes.length; n++) {
				objectVar1 = dataOM[childNameVar1];
				childNameVar2 = this[docData.firstChild.childNodes*.childNodes[n].nodeName];
				objectVar1[childNameVar2+n] = docData.firstChild.childNodes*.childNodes[n].attributes;
				if (docData.firstChild.childNodes*.childNodes[n].hasChildNodes()) {
					for (v=0; v<docData.firstChild.childNodes*.childNodes[n].childNodes.length; v++) {
						objectVar2 = objectVar1[childNameVar2+n];
						childNameVar3 = this[docData.firstChild.childNodes*.childNodes[n].childNodes[v].nodeName];
						objectVar2[childNameVar3] = docData.firstChild.childNodes*.childNodes[n].childNodes[v].nodeValue;


					}
				}
			}

		}
		trace(docData1.firstChild.childNodes*.nodeName+" is "+docData1.firstChild.childNodes*+"
"); 
	}

};

and here is what I get out:


<?xml version='1.0' encoding='ISO-8859-1'?>
<Root>
	<Settings NaN="[type Object]" Editable="yes" DefaultCategory="0"
		DefaultPlatform="mac" projectName="WB Wizard">0</Settings>
	<Channels NaN="[type Object]">
		<Channel undefined="0" Disabled="no" Content="1" Pref="0"
			Store="0" Share="0" Icon="0" Name="Business" ID="0">0</Channel>
		<Channel undefined="0" Disabled="no" Content="1" Pref="0"
			Store="0" Share="0" Icon="0" Name="Nutrition" ID="1">0</Channel>
	</Channels>
	<Movies NaN="[type Object]">
		<Movie undefined="0" folderPath="default" urlPath="22" ID="1">0
		</Movie>
		<Movie undefined="0" folderPath="default" urlPath="14" ID="2">0
		</Movie>
	</Movies>
	<Categories NaN="[type Object]">
		<Category undefined="null" Name="Default">
			<c>0</c>
			<c>1</c>
		</Category>
		<Category undefined="null" Name="Medical">
			<c>0</c>
			<c>1</c>
		</Category>
		<Category undefined="null" Name="Corporate">
			<c>0</c>
			<c>1</c>
		</Category>
	</Categories>
</Root>

Sorry I’ve been doing some crappy debugging and I’m sure the code is messy in a few places but I’m really just going nuts trying to figure out how to avoid this core problem.
Seriously, any help as to a way around this would be amazing.