jquery序列化string成xml 结果区别

来源:互联网 发布:鬼干部暗示什么知乎 编辑:程序博客网 时间:2024/06/06 11:44

目的:遇到一个问题,js里面返回的是一个字符串型的xml,需要序列化成为xml的object,

在baidu上以后,会发现在http://hi.baidu.com的个人日志中是 ,因为检索出来优先列出baidu自家的产品的结果:

其实只要给符合XML规则(如果不符合则会报错)的字符串外面套上$("")JQUERY就可以智能的将其转化成XML对象了,但是IE下士不灵的,所以我们需要自己改进:方法如下:var data="<?xml version=\"1.0\" encoding=\"gb2312\"?><root><gaga>haha</gaga></root>";if($.browser.msie){xml = new ActiveXObject("Microsoft.XMLDOM");xml.async = false;xml.loadXML(data);}else{xml = new DOMParser().parseFromString(data, "text/xml");}alert(data.find("gaga"));搞定全部浏览器,你就可以继续用NB的find方法啦,啦啦啦。。

这样有一个问题,有的浏览器由于设置问题,
 ActiveXObject("Microsoft.XMLDOM");会报错

所以,正确的处理方式是下列方法:

var x = $("<xml><products><product id=\"P1\">AA</product>"+"<product id=\"P2\">BB</product>"+"<product id=\"P3\">CC<part>X</part></product></products></xml>");alert(x.find("products product").size());alert(x.find("product:eq(1)").attr("id"));alert(x.find("product").eq(2).find("part").text());alert(x.find("product[@id='P1']").text());在jQuery裡,如果要直接将字串转成XML物件,记得前后方要加上<xml>及</xml>,才会被当成XML处理;XMLDocument物件则可以直接用$(xmlDoc)。



原创粉丝点击