Parsing XML with ActionScript 3.0 -


i have xml goes this:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <root xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">     <row>         <columna>2013-08-07</columna>         <columnb>pizza</columnb>     </row>     <row>         <columna>2013-04-07</columna>         <columnb>burger</columnb>     </row>     <row>         <columna>2013-04-07</columna>         <columnb>pizza</columnb>     </row> 

the xml goes on hundreds of rows. trying achieve this. "output: pizza: 2 occurances on 2013-08-07 & 2013-04-07." far i've tried:

//variables var myxml:xml; var xmlloader:urlloader = new urlloader();  //check xml loaded xmlloader.load(new urlrequest ("myxml.xml")); xmlloader.addeventlistener(event.complete, processxml); function processxml(e:event):void {     myxml = new xml(e.target.data);      //create xmllist column data      var items:xmllist = myxml.row.columna.text()      //create xmllist rows      var rows:xmllist = myxml.row      //create xmllist column b data (dates)     var dates:xmllist = myxml.row.columnb.text()      //create empty object fill in occurances of column     var columna:string;     var map:object = {};     each (columna in items)     {         if(!map[columna])             map[columna] = 1;         else              map[columna]++;     }       ( columna in map )      {         trace(columna, "=", map[columna], "times. on dates ");     }  } 

my newbie attempt @ trying see if can relate column b column a

    var columnb:string;      ( var i:uint=0; i<rows.length(); i++ )     {         if ( columna[i] == myxml.row.columna[i] )         {             trace( columna[i], "=", columnb[i] )         }     } 

it's puzzling me. in output panel get...

pizza 2 times. on dates  burger 1 times. on dates etc. 

is there way include dates in trace output? like:

pizza 2 times. on dates 2013-08-07, 2013-04-07 

i wouldn't extract xml before parsing it:

var map:object = {}; var meal:string;     //loop through each row each (var node:xml in myxml.row) {   meal = node.columnb.text();    //if meal not exist key in our map yet, create , put empty array in   if (!map[meal])     map[meal] = [];    //fill array of dates current date   map[meal].push(node.columna.text()); } 

there object filled that:

{pizza: ["2013-08-07", "2013-04-07"], burger: ["2013-04-07"]} 

you have go through it:

for (var meal:string in map) {   trace(meal, "found", map[meal].length, "times on", map[meal]); } 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -