嗨,我需要从表单中的数据创建 xml 以将其发送到 web 服务。问题是.append()
不区分大小写,所以.append('<EDO />')
会创建<edo>
. 但是xml是区分大小写的,那么有没有办法解决这个问题呢?而且我选择使用 domObject 而不是字符串,因为这样我就不必编写结束标签,这在我的场景中会非常困难。
问问题
2392 次
4 回答
6
尝试使用$.parseXML()创建 XML 元素:
yourObject.append($.parseXML("<EDO />").documentElement);
于 2012-07-30T10:16:45.030 回答
4
最后正如@Frédéric Hamidi 所说,为了使xml 区分大小写,我使用了这些函数:
var domA = $.parseXML("<EDO_A />").documentElement;
创建元素
$(domA ).append($.parseXML('<EDO_Child />').documentElement);
从字符串中添加子项
$(domA).append(domB)
或domA.appendChild(domB)
添加子对象
于 2012-07-30T11:17:35.600 回答
4
jQuery.parseXML
总是会创建一个新的DOMParse
和一个新的Document
,所以它很重。
更好的方法是使用 (unintuitive) 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 ) );
于 2015-02-09T03:09:45.257 回答
0
笔记:
$.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() 发送;
谢谢
于 2018-04-12T09:12:16.757 回答