Help! can someone tell me what algorithm I should use?


package app.demo.MyTouchApp{

	import flash.display.Sprite;
	import flash.events.TouchEvent;
	import flash.display.Loader;
    import flash.net.URLRequest;
	import flash.net.URLLoader;
	
	import flash.display.*;        
    import flash.events.*;
    import flash.net.*;
    import flash.geom.*;  
	import app.core.action.RotatableScalable;
	
	import flash.text.Font;

	public class test extends RotatableScalable {


		private var MapSprite:Sprite;
		private var MapLoader:Loader; 
		private var MapRequest:URLRequest;
		
		private var MapBtnArray:Array = [];
		private var i:int = 0;

		private var j:Number;
		
		private var BackSprite:Sprite;
		
		
		private var RoomInfoxmlLoader:URLLoader;
		private var roomURL:URLRequest;
		private var roomsXML: XML = new XML();
		private var photoArray:Array = new Array ();
		private var TitleArray:Array = new Array();
		
		private var photoArray2:Array = new Array ();
		private var TitleArray2:Array = new Array();
		
		private var photoArray3:Array = new Array ();
		private var TitleArray3:Array = new Array();
		
		private var photoArray4:Array = new Array ();
		private var TitleArray4:Array = new Array();

		private var keyIn:String = "BR1014";
		private var abc:String;
		private var abcde:String;
//////////////////////////////////////////////////////////////////////////////////
		public function test() 
		{
			
            //--------connect to TUIO-----------------
            TUIO.init(this,'localhost',3000,'',true);
            trace("MyTouchApp Initialized");
            //----------------------------------------        
 			xxx();
        }
		
		private function xxx():void
		{
			MapSprite = new Sprite();
			MapSprite.graphics.lineStyle(1,0x000000);
			MapSprite.graphics.beginFill(0xFFFFFF);
			MapSprite.graphics.drawRect(0,0, 550,400);
			addChild(MapSprite);
			loadXML();
		}
		
		private function loadXML ():void 
		{	
			RoomInfoxmlLoader = new URLLoader ();
			roomURL = new URLRequest ("rooms.xml");
			RoomInfoxmlLoader.load (roomURL);
			roomsXML.ignoreWhitespace = true;
			RoomInfoxmlLoader.addEventListener (Event.COMPLETE, loaded);

		}

		private function loaded (e:Event):void
		{
				roomsXML = XML(RoomInfoxmlLoader.data);
				for (var k:String in roomsXML.trip)
					{
						TitleArray.push(roomsXML.trip[k].title);
			
					}
		
			for (i = 0; i <TitleArray.length; i++)
			{
				if(keyIn == TitleArray*)
				{
				
					abc = TitleArray*;
					goTrace();
				
				}
			else
			{
				load2();
			}
		}
	}

////////////////////////////////////////////////////////////////////////////////

		private function load2 ():void 
		{	
			RoomInfoxmlLoader = new URLLoader ();
			roomURL = new URLRequest ("XML/rooms.xml");
			RoomInfoxmlLoader.load (roomURL);
			roomsXML.ignoreWhitespace = true;
			RoomInfoxmlLoader.addEventListener (Event.COMPLETE, loaded2);

		}

		private function loaded2 (e:Event):void
		{
				roomsXML = XML(RoomInfoxmlLoader.data);
				for (var k2:String in roomsXML.trip)
					{
						TitleArray2.push(roomsXML.trip[k2].title);
			
					}
		
		for (i = 0; i <TitleArray2.length; i++)
		{
			if(keyIn == TitleArray2*)
			{
				
				abc = TitleArray2*;
				goTrace();
				
			}
			else
			{
				load3 ();
			}
		}
	}
		
		////////////////////////////////////////////////////////////////////////////////

		private function load3 ():void 
		{	
			RoomInfoxmlLoader = new URLLoader ();
			roomURL = new URLRequest ("XML/G_wA.xml");
			RoomInfoxmlLoader.load (roomURL);
			roomsXML.ignoreWhitespace = true;
			RoomInfoxmlLoader.addEventListener (Event.COMPLETE, loaded3);

		}

		private function loaded3 (e:Event):void
		{
				roomsXML = XML(RoomInfoxmlLoader.data);
				for (var k3:String in roomsXML.trip)
					{
						TitleArray3.push(roomsXML.trip[k3].title);
			
					}
		
		for (i = 0; i <TitleArray3.length; i++)
		{
			if(keyIn == TitleArray3*)
			{
				
				abc = TitleArray3*	;
				goTrace();
				
			}
			else
			{
				load4 ();
			}
		}
	}
		////////////////////////////////////////////////////////////////////////////////

		private function load4 ():void 
		{	
			RoomInfoxmlLoader = new URLLoader ();
			roomURL = new URLRequest ("XML/G_wB.xml");
			RoomInfoxmlLoader.load (roomURL);
			roomsXML.ignoreWhitespace = true;
			RoomInfoxmlLoader.addEventListener (Event.COMPLETE, loaded4);

		}

		private function loaded4 (e:Event):void
		{
				roomsXML = XML(RoomInfoxmlLoader.data);
				for (var k4:String in roomsXML.trip)
					{
						TitleArray4.push(roomsXML.trip[k4].title);
			
					}
		
		for (i = 0; i <TitleArray4.length; i++)
		{
			if(keyIn == TitleArray4*)
			{
				
				abc = TitleArray4*	;
				goTrace();
				
			}
			else
			{
				abc = "999";
				goTrace();
			}
		}
	}
		
/////////////////////////////////////////////////////////////////////////////////////

		private function goTrace():void
		{
			trace(abc);
		}

	}
}

well… I dunno how to perform a search in XML, so I use the above method, kinda hard code I know…

for example, I try to search " keyIn:String = “BR1014”; " means I wanna search BR1014 in 4 XML files, so I load the XML info into an array, and using for loop to loop the XML array (in this case TitleArray1*, TitleArray2*…)
and compare it with keyIn (which store the value BR1014), some how the value is located in TitleArray4* which have the length of 12 (trace(TitleArray4*.length) = 12)

so everytime I run it, I will overwrite abc 12 times… and out put 12 time the abc value, in this case BR1014 was located in TitleArray4[3], so the 4th output of “abc” is BR1014 but others is all 999…

can some one tell me how to perform the search in a proper way?