通常在Javascript中做数据交换用的都是json也比较方便,但是这次碰到xml字符串解析。查了下,发现不同浏览器还不一样,解析起来倒也不难。
var txt='<?xml version="1.0"?><note>'; txt=txt+'<to id="to">Tove</to>' txt=txt+'<from>Jani</from>'; txt=txt+'<heading>Reminder</heading>'; txt=txt+'<body>Don\'t forget me this weekend!</body>'; txt=txt+'</note>'; if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); } else // Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(txt); } //获取to的文本值 var to_text=xmlDoc.getElementsByTagName('to')[0].childNodes[0].nodeValue; //获取to的属性值 var to_id=xmlDoc.getElementsByTagName('to')[0].getAttribute('id');
如果有用到Jquery的话也可以使用$.parseXML(),然后就可以使用Jquery的选择器和方法了
var note=$.parseXML(text); //找到to节点 var to=$(note).find('to'); //获取to的文本值 var to_text=to.text(); //获取to的属性值 var to_id=to.attr('id'); //如果to有多个的话,可以先判断to.length //然后又下标去访问或者用$.fn.each()遍历访问 //var to_text=$(to[0]).text();
如果是通过Ajax请求的返回回来的数据,可以$.ajax中设置请求参数dataType:’xml’,然后就可以使用Jquery的选择器。
参考链接:
XML DOM Get Node Values
JQuery解析XML数据的几个例子
jQuery.parseXML