Saw this example on the jQuery examples page for Ajax:
var xmlDocument = [create xml document]; $.ajax({ url: "page.php", processData: false, data: xmlDocument, success: someFunction });
How do I take a string like:
var t = '<foo><bar>something</bar></foo>';
And convert that to a XML DOM object? cross-browser?
UPDATE: Please see comments to karim79's answer.
For converting the string to xml document, we can use DocumentBuilderFactory and DocumentBuilder classes.
Android DOM(Document Object Model) parser is a program that parses an XML document and extracts the required information from it. This parser uses an object-based approach for creating and parsing the XML files. In General, a DOM parser loads the XML file into the Android memory to parse the XML document.
SAX (Simple API for XML) is an event-based parser for XML documents. Unlike a DOM parser, a SAX parser creates no parse tree.
What is XML? The Extensible Markup Language (XML) is a simple text-based format for representing structured information: documents, data, configuration, books, transactions, invoices, and much more. It was derived from an older standard format called SGML (ISO 8879), in order to be more suitable for Web use.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With