Javascript 中解析XML

通常在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

发表评论

电子邮件地址不会被公开。 必填项已用*标注