this treats processes each order of element separately as a variable. If I can append these correctly. I think that this might be a slightly better process. It is at least treating things in a more object oriented manner.
$(xml).find('sites').each(function(){ PARENT = $(this); var PARENTarr = jQuery.makeArray($(this).children($(this).attr ('id'))); var CHILDRENarr = jQuery.makeArray($(PARENTarr).children($(this).attr ('label'))); var CHILDSarr = jQuery.makeArray($(CHILDRENarr).children($(this).attr ('label'))); var PARENTobjs = {thisPARENT: $(PARENTarr).each(function(i){ var PARENTid = $(PARENTarr[i]).attr('id'); alert(PARENTid); }) } var CHILDRENobjs = {thisCHILDREN: $(CHILDRENarr).each(function(n){ var CHILDRENlabel = $(CHILDRENarr[n]).attr('label'); alert(CHILDRENlabel); }) } var CHILDSobjs = {thisCHILD: $(CHILDSarr).each(function(p){ var CHILDSlabel = $(CHILDSarr[p]).attr('label'); var CHILDStext = $(CHILDSarr[p]).text(); alert(CHILDSlabel + ": " + CHILDStext); }) } }); }