In questo modo funziona:

Codice PHP:
arrDati = new Array();
var 
my_xml:XML = new XML();
my_xml.ignoreWhite true;
my_xml.onLoad = function(success:Boolean) {
    if (
success) {
        if (
my_xml.status == 0) {
            
nroRec this.firstChild.childNodes.length;
            
//blocco recupero dati dagli attributi
            
var temp:Array = this.firstChild.childNodes;                        
            for(var 
i:Number 0temp.lengthi++){
                var 
obj:Object=new Object();
                for(var 
prop in temp[i].attributes)
                    
obj[prop] = temp[i].attributes[prop];
                
arrDati.push(obj);
            }
            
//fine blocco recupero dati dagli attributi
            
user_ds.items arrDati;
        } else {
            
trace("ERRORE nella lettura dell'XML");
        }
    }
};
my_xml.load("prog.xml"); 
In ogni caso per problemi riscontrati nell'encoding di Numeri e Booleani da parte del componente DataSet, ho dovuto ripiegare su qusto codice per fare il cast di alcune variabili.

Codice PHP:
//blocco recupero dati dagli attributi
for (var 0nroReci++) {
                var 
obj:Object=new Object();
                
obj.canale this.firstChild.childNodes[i].attributes.canale;
                
obj.titolo this.firstChild.childNodes[i].attributes.titolo;
                
obj.spo Boolean(this.firstChild.childNodes[i].attributes.spo);
                
obj.ora this.firstChild.childNodes[i].attributes.ora;
                
obj.propr this.firstChild.childNodes[i].attributes.propr;
                
obj.id Number(this.firstChild.childNodes[i].attributes.id);
}
//fine blocco recupero dati dagli attributi 

Spero possa essere di aiuto a qualcuno

:-)