JavaScript解析XML总结

解析XML的方法很多,比如数据岛,W3C DOM方法等,这里总结一下用JavaScript解析xml字符串的方法。

function loadXml(data){
	   //IE下加载xml字符串
	   if(navigator.userAgent.indexOf('MSIE') >= 0) {
	      //加载xml字符串  (IE下的加载方式)
	      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
	      xmlDoc.async = false;  //关闭异步加载,这样作可以使得文档加载完全之前,解析起不会继续执行脚本 
	      xmlDoc.loadXML(data); 
	   }
	   //火狐下加载xml字符串
	  if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
		   //加载xml字符串  (FireFox下的加载方式)
		   var doc = new DOMParser();  
		   var xmlDoc = doc.parseFromString(data, "text/xml"); 
    }
    //遍历list标签
    var elementList;
    elementList = xmlDoc.getElementsByTagName('children');
    
    for(var i = 0; i<elementList.length; i=i+1){
        var value;
        value = elementList[i].getAttribute('id');
        var childs;
        //当前元素的子结点,获得所有列
        childs = elementList[i].childNodes;
        var cellArray = new Array();
        //遍历row的子节点,取得每一个结点的内容
        for(var j = 0; j<childs.length; j=j+1){
          var cell = $.trim($(childs[j]).text());
          var cells = cellArray.push(cell);
        }
        addRow(value,cellArray);
    }
		}

 

在IE和在火狐下创建dom的方式不同,一般在IE下通过var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  就行,但在火狐下需要通过var doc = new DOMParser(); var xmlDoc = doc.parseFromStrin(data,"text/xml"); 这种方式获得dom对象。

    上面的方法是解析xml字符串,得到节点后遍历节点,取到值后显示,还可以直接解析xml文件。

/*********************************
 * 加载xml文件
 */
mygrid.loadXml = function(url){
	//IE下加载xml文件  
	if(navigator.userAgent.indexOf('MSIE') >= 0){
       var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
	   xmlDoc.async = false; //关闭异步加载,这样作可以使得文档加载完全之前,解析起不会继续执行脚本  
	   xmlDoc.load(url);
	}
	//FireFox下加载xml文件
    if(isFirefox=navigator.userAgent.indexOf('Firefox')>0){
    	var xmlDoc = Documnet.Implementation.createDocument("", "", null);  
    	xmlDoc.async = false; //关闭异步加载,这样做可以使得文档加载完全之前,解析起不会继续执行脚本
    	xmlDoc.load(url);  
    }

}

 当然,还有其他很多解析xml的方法,这里总结一下我用到的2种,这两种也是比较常用的两种方法。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值