Jquery append()区分大小写的元素
您好,我需要从表单中的数据创建xml以将其发送到webservice。问题是Jquery append()区分大小写的元素,jquery,append,case-sensitive,Jquery,Append,Case Sensitive,您好,我需要从表单中的数据创建xml以将其发送到webservice。问题是.append()不区分大小写,因此.append(“”)将创建。但是xml是区分大小写的,所以有办法解决这个问题吗?我选择使用domObject而不是string,因为这样我就不必编写endtags,这在我的场景中是非常困难的。尝试使用创建XML元素: yourObject.append($.parseXML("<EDO />").documentElement); yourObject.append($
.append()
不区分大小写,因此.append(“”)
将创建
。但是xml是区分大小写的,所以有办法解决这个问题吗?我选择使用domObject而不是string,因为这样我就不必编写endtags,这在我的场景中是非常困难的。尝试使用创建XML元素:
yourObject.append($.parseXML("<EDO />").documentElement);
yourObject.append($.parseXML(“”.documentElement);
最后,正如@Frédéric Hamidi所说,为了生成区分大小写的xml,我使用了以下函数:
var domA=$.parseXML(“”).documentElement代码>以创建元素
$(domA).append($.parseXML('').documentElement)代码>从字符串添加子项
$(domA).append(domB)
或domA.appendChild(domB)
要添加子对象将始终创建一个新的DOMParse
和一个新的文档
,因此它相当沉重
更好的方法是使用(非直观),使用上下文
参数:
// 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 ) );
//创建上下文XML文档;doc和$doc是可重用的
var doc=(new DOMParser()).parseFromString(“”,'text/xml');
变量$doc=$(doc.documentElement)
//创建区分大小写的XML元素;
//从jQuery 2.1.3开始,这将调用doc.createElement('EDO')
$doc.append($.parseHTML('',doc));
注意:
$.parseHTML("<AddPerson>Adel</AddPerson>"); //result: <addperson>Adel</addperson>
$.parseXML("<AddPerson>Adel</AddPerson>"); //result: <AddPerson xmlns="">Adel</AddPerson>
现在,可以通过$.ajax()发送请求了
谢谢谢谢,这似乎行得通,但我又遇到了另一个问题。我已经创建了elementvardoma=$.parseXML(“”).documentElement代码>这样添加子级是没有问题的$(domA).append($.parseXML('').documentElement)但是当我有另一个examlevar domB=$.parseXML(“”.documentElement)对象时
我不知道如何将其添加到domA
。我尝试了$(domA).append(domB)
或$(domA).append($.parseXML(serializer.serializeToString(domB);).documentElement)代码>其中serializer
是var serializer=new XMLSerializer()代码>但它没有work@david,当您尝试$(domA).附加(domB)
?对不起,我犯了一个错误而不是$。parseXML
我只有$。
比domA
是坏对象,它没有工作。现在$(domA.append(domB)
工作得很好,我发现domA.appendChild(domB)
也能工作。唯一的问题是这是什么faster@david,appendChild()
可能更快,因为append()
是根据appendChild()
实现的。不过,衡量也没什么坏处:)
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"), "");