Try this $(function() { $.ajax({ type: "GET", url: "devices.xml", dataType: "xml", success: function(xml) {
$ (xml.responseXML).find('device').each(function(index){ var device_name = $(this).text() // create table layout $('<tr><td class="device_name"></td></tr>') .html(device_name) .appendTo('#devicelist'); }); } }); Regards Tony On May 7, 7:35 am, catharsis <[EMAIL PROTECTED]> wrote: > Here is what I'm trying to do: > > (1) Parse an external XML, > (2) enter the list of devices in the XML into an array, > (3) sort the array alphabetically (and group items in the arrays by > name if possible), > (4) print the devices individually in table cells. > > Ideally, I'd like if the devices taken from the XML file > (straightforward: just <devices><device> device1 </device><device> > device2 </device> ... </devices>) could be more easily manipulated. > > $(function() { > $.ajax({ > type: "GET", > url: "devices.xml", > dataType: "xml", > success: function(xml) > { > // create array for the devices > var device_name = '', device_array = []; > > // iterate through the xml and add the devices to the > array > $(xml).find('device').each(function(index){ > device_name = ($this).text(); > device_array.push(device_name); > }); > > // sort the array > device_array.sort(); > > // iterate through and print the elements > for (var i = 0, item; item = device_array[i]; i++) { > $('<tr><td class="device_name"></td></tr>') > .html(item) > .appendTo('#devicelist'); > }; > } > }); > > }); > > -- > > This just outputs a blank space. I know there's an issue with sorting > on jQuery arrays, but I don't think that's where the script is > failing. Altogether, I'm having a difficult time trying to manipulate > an on-the-fly table created from a parsed XML, but can't think of any > alternatives. > > If it's of any help, the following script works, but doesn't produce a > sorted, manipulate-able set of devices: > > $(function() { > $.ajax({ > type: "GET", > url: "devices.xml", > dataType: "xml", > success: function(xml) > { > > $(xml).find('device').each(function(index){ > var device_name = $(this).text() > > // create table layout > $('<tr><td class="device_name"></td></tr>') > .html(device_name) > .appendTo('#devicelist'); > }); > } > }); > > });