Convert String to XML Document in JavaScript

Wrap it in a jQuery object. Then use jQuery’s normal DOM manipulation 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.

Leave a Comment