It actually goes to JSON and then to XML, but here's an adaption of json2xml.js specifically for use with jQuery's serializeArray function:
function json2xml(o, tab) { var toXml = function(v, name, ind) { var xml = ""; if (typeof(v) == "object") { var hasChild = false; for (var m in v) { if (m.charAt(0) == "@") { xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\""; } else { hasChild = true; } } if (hasChild) { for (var m in v) { if (m=="name") { xml += "<" + v[m] + ">" + v['value'] + ""; } } } } return xml; }, xml=""; for (var m in o) { xml += toXml(o[m], m, ""); } return ""; }
and then I call it like this:
var formjson = $('form#myform').serializeArray(); //var formxml = $.compactJSON(mjson); var formxml = json2xml(formjson); alert(formxml); $.post("/collect.cgi", { 'data': formxml }, function (data){ });