更新
新代码给了我DOM Exception 8
错误。
if($('#searchClientName').val() != '')
{
$($.parseXML(requestXML)).find('Parameters').get(0).appendChild('<ClientName>'+$('#searchClientName').val()+'</ClientName>');
}
我也试过使用这些选项:
$('<ClientName>'+$('#searchClientName').val()+'</ClientName>').appendTo($($.parseXML(requestXML)).find('RequestParameters').get(0));
它不会出现任何错误,但XML保持不变。
xmlDoc = document.implementation.createDocument(“”,“”,null); clientNameElement = xmlDoc.createElement('ClientName'); clientNameValue = xmlDoc.createTextNode($('#searchClientName')。val()); clientNameElement.appendChild(clientNameValue); $(。$ parseXML(requestXML))找到( 'requestParameters的')得到(0).appendChild(clientNameElement);
旧代码:
我很难用jQuery进行XML操作。
无法弄清楚如何实施评论部分:
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>
}
注意:Camel外壳对于元素名称非常重要
答案 0 :(得分:0)
这样可行。
更新了代码以维护节点名称的Camel Case。
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);