javascript - jQuery: Adding XML element -
update
new code gave me dom exception 8 error.
if($('#searchclientname').val() != '') { $($.parsexml(requestxml)).find('parameters').get(0).appendchild('<clientname>'+$('#searchclientname').val()+'</clientname>'); } i tried using these options too:
$('<clientname>'+$('#searchclientname').val()+'</clientname>').appendto($($.parsexml(requestxml)).find('requestparameters').get(0));it doesn't give error xml remains unchanged.
xmldoc = document.implementation.createdocument("", "", null); clientnameelement = xmldoc.createelement('clientname'); clientnamevalue = xmldoc.createtextnode($('#searchclientname').val()); clientnameelement.appendchild(clientnamevalue); $($.parsexml(requestxml)).find('requestparameters').get(0).appendchild(clientnameelement);
old code:
having hard time doing xml manipulation jquery. not able figure out how implement commented part:
var requestxml = "<request><type>search</type><parameters></parameters></request>", requestdoc = $.parsexml(requestxml), reqxml = $( requestdoc ), $parameters = $reqxml.find('parameters'); if($('#clientnametextfield').val() != '') { //add <clientname> name text field value</clientname><parametertype>clientname</parametertype> } else if ($('#idtextfield').val() != '') { //add <clientid> id text field value</clientid><parametertype>clientid</parametertype> } note: camel casing important element names
this work.
updated code maintain camel case node names.
var requestxml = "<request><type>search</type><parameters></parameters></request>", $reqxml = $( jquery.parsexml(requestxml) ), $parameters = $reqxml.find('parameters'); if($('#clientnametextfield').val() != '') { //add <clientname> name text field value</clientname><parametertype>clientname</parametertype> $parameters.append(jquery.parsexml('<clientname>apple</clientname>').documentelement); $parameters.append(jquery.parsexml('<parametertype>p999</parametertype>').documentelement); } else if ($('#idtextfield').val() != '') { //add <clientid> id text field value</clientid><parametertype>clientid</parametertype> $parameters.append(jquery.parsexml('<clientid>c111</clientid>').documentelement); $parameters.append(jquery.parsexml('<parametertype>p999</parametertype>').documentelement); } var xmlstring = (new xmlserializer()).serializetostring($reqxml.get(0)); console.log(xmlstring);
Comments
Post a Comment