Wrap it in a jQuery object. Then use normal DOM methods on it.
var t = $('<foo><bar>something</bar></foo>');
//loop over 'bar' nodes
t.find('bar').each(function () {
alert($(this).text());
});
If you want to convert it back to a plain string (after modifying it for example) you can do it like so:
//then convert it back to a string
//for IE
if (window.ActiveXObject) {
var str = t.xml;
alert(str);
}
// code for Mozilla, Firefox, Opera, etc.
else {
var str = (new XMLSerializer()).serializeToString(t);
alert(str);
}
EDIT: The $.ajax manual says (on the processData option):
By default, data passed in to the data
option as an object (technically,
anything other than a string) will be
processed and transformed into a query
string, fitting to the default
content-type
"application/x-www-form-urlencoded".
If you want to send DOMDocuments, or
other non-processed data, set this
option to false.
So if you're passing a jQuery object to the server, you'll need to set that to true, or omit it altogether (it is set to true by default). Hope that helped.