通过AJAX的JS、JQuery两种方式解析XML

本文介绍了一个使用Ajax获取订单详情并展示订单及商品信息的功能实现方案。通过解析返回的XML数据,动态生成表格来显示每个订单的状态及所包含的商品详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • JQuery版
$.ajax({
			url : "order/order_orderDetail.do?params.type=merge",
			type : "post",
			data : params,
			success : function(xml) {
				hide();
				if(xml == ""){
					Dialog.popTip("找不到需要合并的订单", 2); 
				}else{
            		var myTable=document.getElementById( "t_product" );
            		//遍历"ORDER"节点
					$(xml).find('ORDER').each(function(){
            			var id = $(this).find("ORDERID").text();
            			var status = $(this).find("STATUS").text();
            			
            			if(status == "1"){
            				status="未确认";
            			}else{
            				status="已确认";
            			}
            			
  						var newRow = myTable.insertRow();
  						var oCell = newRow.insertCell();	
						oCell.setAttribute("height","25");
						oCell.innerHTML=" ";
						oCell = newRow.insertCell();
						oCell.innerHTML="*<b>订单<span style=\"color:red\">"+id+"</span> 的状态为:<span style=\"color:red\">"+status+"</span></b>,商品情况如下<input type=\"checkbox\" name=\"mOrder\" value="+id+" onclick=\"mergeOrder();\">";
						oCell = newRow.insertCell();
						oCell.innerHTML=" ";
						oCell = newRow.insertCell();
						oCell.innerHTML=" ";
						//遍历"PRODUCT"节点
						$(this).find('PRODUCT').each(function(){
							var pid = $(this).find("PRODUCTID").text();
							var pname = $(this).find("PRODUCTNAME").text();
							var purl = $(this).find("PRODUCTURL").text();
							var pprice = $(this).find("PRICE").text();
							var pcount = $(this).find("GOODSCOUNT").text();
							newRow = myTable.insertRow();
							oCell = newRow.insertCell();
							oCell.setAttribute("height","25");	
							oCell.innerHTML=pid;
							oCell = newRow.insertCell();
							oCell.innerHTML="<a href=\""+purl+"\" target=\"_blank\">"+pname+"</a>";
							oCell = newRow.insertCell();	
							oCell.innerHTML="<img style=\"cursor: pointer; vertical-align: middle\" src=\"./images/-.png\" onclick=\"return plus('p"+pid+"','"+pprice+"')\" /><input style=\"width: 20px; border: 0; text-align: center;\" type=\"text\" id=\"p"+pid+"\" name=\"order.count\" class=\"txt\" value="+pcount+" readonly /><img style=\"cursor: pointer; vertical-align: middle\" src=\"./images/+.png\" onclick=\"return add('p"+pid+"','"+pprice+"')\">"
							oCell = newRow.insertCell();	
							oCell.innerHTML=pprice;
						});
        			});
        		}
			},
			error : function() {
				hide();
				Dialog.popTip("服务器繁忙", 2); 
			}
		});
  • JS版
if(xmlHttp.readyState ==4){
             if(xmlHttp.status ==200){
                hide();
             	var xml = xmlHttp.responseXML;
				if(xml == null){
					Dialog.popTip("找不到需要合并的订单", 2); 
				}else{
					var myTable=document.getElementById("t_product" );
					var orders = xml.getElementsByTagName("ORDER");
        			for(var i=0;i<orders.length;i++){
            			var order = orders[i];
            			var id = order.getElementsByTagName("ORDERID")[0].childNodes[0].nodeValue;
            			var status =order.getElementsByTagName("STATUS")[0].childNodes[0].nodeValue;
            			alert(status);
            			if(status == "1"){
            				status="未确认";
            			}else{
            				status="已确认";
            			}
  						var newRow = myTable.insertRow();
  						var oCell = newRow.insertCell();	
						oCell.setAttribute("height","25");
						oCell.innerHTML=" ";
						oCell = newRow.insertCell();
						oCell.innerHTML="*<b>订单<span style=\"color:red\">"+id+"</span> 的状态为:<span style=\"color:red\">"+status+"</span></b>,商品情况如下<input type=\"checkbox\" name=\"mOrder\" value="+id+" onclick=\"mergeOrder();\">";
						oCell = newRow.insertCell();
						oCell.innerHTML=" ";
						oCell = newRow.insertCell();
						oCell.innerHTML=" ";
						
						var products = order.getElementsByTagName("PRODUCT");
						for(var i=0;i<orders.length;i++){
            				var product = products[i];
            				var pid = product.getElementsByTagName("PRODUCTID")[0].childNodes[0].nodeValue;
							var pname = product.getElementsByTagName("PRODUCTNAME")[0].childNodes[0].nodeValue;
							var purl = product.getElementsByTagName("PRODUCTURL")[0].childNodes[0].nodeValue;
							var pprice = product.getElementsByTagName("PRICE")[0].childNodes[0].nodeValue;
							var pcount = product.getElementsByTagName("GOODSCOUNT")[0].childNodes[0].nodeValue;
							newRow = myTable.insertRow();
							oCell = newRow.insertCell();
							oCell.setAttribute("height","25");	
							oCell.innerHTML=pid;
							oCell = newRow.insertCell();
							oCell.innerHTML="<a href=\""+purl+"\" target=\"_blank\">"+pname+"</a>";
							oCell = newRow.insertCell();	
							oCell.innerHTML="<img style=\"cursor: pointer; vertical-align: middle\" src=\"./images/-.png\" onclick=\"return plus('p"+pid+"','"+pprice+"')\" /><input style=\"width: 20px; border: 0; text-align: center;\" type=\"text\" id=\"p"+pid+"\" name=\"order.count\" class=\"txt\" value="+pcount+" readonly /><img style=\"cursor: pointer; vertical-align: middle\" src=\"./images/+.png\" onclick=\"return add('p"+pid+"','"+pprice+"')\">"
							oCell = newRow.insertCell();	
							oCell.innerHTML=pprice;
        				}
        			}
				}
            }
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值