jQuery将XML标签转换为大写

我有一个AJAX请求,该请求返回我想注入DOM的XML字符串。我的功能看起来像

  $.ajax({

type: 'POST',

url: "myrequest",

data: postdata,

datatype: 'json',

success: function (arguments) {

newxmlstring = arguments.newxml;

oldnode = $("someselector specified in the arguments passed");

oldnode.replaceWith(newxmlstring);

}

});

此方法有效,但似乎replaceWith函数将所有内容映射nodeName到服务器发送的响应的大写版本中。我假设尝试使用jQuery处理XML有点古怪吗?

因此,例如,如果响应字符串是<data>asdf</data>在我访问时$(newnode)[0].nodeName得到的'DATA'

有人知道如何在保留nodeName小写字母的同时处理新的XML 吗?

编辑:我的答复是JSON,因为它包含新的xml字符串和有关将新的xml节点附加到何处的其他数据。因此,我希望尽可能保留datatype: 'json'

回答:

在XML(以及基于XML的语言,例如XHTML)中,tagName保留大小写。在HTML中,tagName以规范的大写形式返回元素名称。tagName的值与nodeName的值相同。

一点搜索表明,很多人都遇到了这个问题,尤其是选择器和XML(jQuery的find()区分大小写,在find()中使用的选择器是小写的)。

这是其他人用来将字符串转换为可能适合您的XML

的函数:

$.text2xml = function(sXML) { 

// NOTE: I'd like to use jQuery for this, but jQuery makes all

// tags uppercase

//return $(xml)[0];

var out;

try{

var dXML = ($.browser.msie)?new ActiveXObject("Microsoft.XMLDOM"):new DOMParser();

dXML.async = false;

}catch(e){ throw new Error("XML Parser could not be instantiated"); };

try{

if($.browser.msie) out = (dXML.loadXML(sXML))?dXML:false;

else out = dXML.parseFromString(sXML, "text/xml");

}

catch(e){ throw new Error("Error parsing XML string"); };

return out;

}

以上是 jQuery将XML标签转换为大写 的全部内容, 来源链接: utcz.com/qa/399117.html

回到顶部