The best way to store xml data is with classes in my opinion, look at the following example I made:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var playlistXml:XML = <playlist>
<track>
<title>TestTrack 1</title>
<band>Band1</band>
<file>test1.mp3</file>
</track>
<track>
<title>TestTrack 2</title>
<band>Band2</band>
<file>test2.mp3</file>
</track>
<track>
<title>TestTrack 3</title>
<band>Band3</band>
<file>test3.mp3</file>
</track>
<track>
<title>TestTrack 4</title>
<band>Band4</band>
<file>test4.mp3</file>
</track>
</playlist>;
var playlist:Playlist = new Playlist(playlistXml);
var track:Track = playlist.getTrackByTitle("TestTrack 1");
trace(track.band); // output: Band1
}// end function
}// end class
}// end package
internal class Playlist
{
private var _tracks:Vector.<Track>;
public function Playlist(playlistXml:XML)
{
_tracks = new Vector.<Track>();
for each(var track:XML in playlistXml.children())
{
_tracks.push(new Track(track.title, track.band, track.file));
}// end for each
}// end function
public function getTrackByTitle(title:String):Track
{
var track:Track;
for each(var t:Track in _tracks)
{
if (t.title == title) track = t;
}// end for each
if (!track) throw new Error("Could not find track with title " + "\"title\".");
return track;
}// end function
public function getTrackByBand(band:String):Track
{
var track:Track;
for each(var t:Track in _tracks)
{
if (t.band == band) track = t;
}// end for each
if (!track) throw new Error("Could not find track with band " + "\"band\".");
return track;
}// end function
public function getTrackByFile(file:String):Track
{
var track:Track;
for each(var t:Track in _tracks)
{
if (t.file == file) track = t;
}// end for each
if (!track) throw new Error("Could not find track with file " + "\"file\".");
return track;
}// end function
}// end class
internal class Track
{
private var _title:String;
private var _band:String;
private var _file:String;
public function get title():String { return _title }
public function get band():String { return _band }
public function get file():String { return _file }
public function Track(title:String, band:String, file:String)
{
_title = title;
_band = band;
_file = file;
}// end function
}// end class
In the document class Main there's the playlistXml object with the playlist xml data(didn't put the code to load it because I didn't want to make the code bigger than it already was, well is).
Next comes the Playlist object. This is an object of a class that handles breaking up the track nodes in the xml and storing them in Track objects. Also the Playlist class has three public methods called, getChildByTitle(), getChildByBand(), getChildByFile(), that searches for and a specified track by the respective method.
The advantage of this approach is that it creates a strong construct for storing your data and allows for an easy way to retrieve it.
var track:Track = playlist.getTrackByTitle("TestTrack 1");
trace(track.band); // output: Band1