jquery.append()元素区分大小写



嗨,我需要从表单中的数据创建xml,将其发送到webservice。问题是.append()不区分大小写,因此.append('<EDO />')将创建<edo>。但是xml是区分大小写的,所以有办法解决这个问题吗?我选择使用domObject而不是字符串,因为这样我就不必写结束标记,这在我的场景中会非常困难。

尝试使用$.parseXML()创建XML元素:

yourObject.append($.parseXML("<EDO />").documentElement);

最后,正如@Frédéric Hamidi所说,为了使xml区分大小写,我使用了以下函数:

var domA = $.parseXML("<EDO_A />").documentElement;创建元素

$(domA ).append($.parseXML('<EDO_Child />').documentElement);从字符串添加子项

$(domA).append(domB)domA.appendChild(domB)添加子对象

jQuery.parseXML将始终创建一个新的DOMParse和一个新Document,因此它相当重。

更好的方法是使用(非直观的)parseHTML,使用context参数:

// Create the context XML document; doc and $doc is reusable
var doc = (new DOMParser()).parseFromString( '<root/>', 'text/xml' ); 
var $doc = $( doc.documentElement )
// Create case-sensitive XML element;
// this will call doc.createElement( 'EDO' ), as of jQuery 2.1.3
$doc.append( $.parseHTML( '<EDO />', doc ) ); 

备注:

$.parseHTML("<AddPerson>Adel</AddPerson>"); //result: <addperson>Adel</addperson>
$.parseXML("<AddPerson>Adel</AddPerson>"); //result: <AddPerson xmlns="">Adel</AddPerson>

我想你需要这些线路:

var request = $.parseXML(HtmlOrXmlStringSource);
$(request).find(someElementInside).append(HtmlOrXmlStringSource_2);
//Serialize XML
var oSerializer = new XMLSerializer();
request = oSerializer.serializeToString(request);
request = request.replace(new RegExp(' xmlns=""', "igm"), "");

现在可以通过$.ajax()发送请求了;

感谢

相关内容

最新更新