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