日期:2014-05-16  浏览次数:20437 次

ajax解析xml,多条数据,只读取了一条,求大神解释
function mainBillXml(){
//alert("开始下载运单信心.........................");
$.ajax({
    url:'xml/mainbill.xml',
  dataType:'xml',
error: function(xml){
     alert(xml+"加载XML 文件出错!");   
      },  
success: function(data){  
                $(data).find("mainbill").each(function() {
   alert($(this).find("mainbill"));
       var $MBILLID=$(this).children("MBILLID").text();//主运单号
   var $MPCS=$(this).children("MPCS").text();//件数
   var $MWEIGHT=$(this).children("MWEIGHT").text();//重量
   var $MVOL=$(this).children("MVOL").text();//体积
   var $SALESAGENT=$(this).children("SALESAGENT").text();//销售代理人
           var $OPERAAGENT=$(this).children("OPERAAGENT").text();//操作代理人
   var $SPECOPEID=$(this).children("SPECOPEID").text();//特货代码
   alert($MBILLID);
//   insertMainbillInfo($MBILLID,$MPCS,$MWEIGHT,$MVOL,$SALESAGENT,$OPERAAGENT,$SPECOPEID);//把获取的主运单信息添加本地sqlite
 
   var $HABILL=$(this).find("HABILL");
       if($HABILL!=null){//若存在子节点,则获取子节点信息
   var $HABILLID=$HABILL.children("HABILLID").text();//分单号码
   var $HPCS=$HABILL.children("HPCS").text();//分单件数
   var $HWEIGHT=$HABILL.children("HWEIGHT").text();//分单重量
   var $HVOL=$HABILL.children("HVOL").text();//分单体积
   alert($HABILLID);
//  insertHAabillInfo($HABILLID,$HPCS,$HWEIGHT,$HVOL);//把获取的分运单信息添加到本地sqlite
  //var $HABILLID=$(this).find("HABILL").children("HABILLID").text();
//alert($HABILLID);
}else{ alert("您所读取的分单不存在")}
                                 insertMainbillInfo($MBILLID,$MPCS,$MWEIGHT,$MVOL,$SALESAGENT,$OPERAAGENT,$SPECOPEID);//把获取的主运单信息添加本地sqlite
 insertHAabillInfo($HABILLID,$HPCS,$HWEIGHT,$HVOL);//把获取的分运单信息添加到本地sqlite
});
}
});

// uldUploadXml();//下载ULD集装器
  
}
XML Ajax SQLite

------解决方案--------------------

function mainBillXml(){
$.ajax({
url:'mainbill.xml',
dataType:'xml',
error: function(xml){
alert(xml+"----");
},
success: function(data){
$(data).find("MAINBILL").each(function() {
alert($(this).find("MBILLID").text());
});
}
});

}


经测试完全可用,请楼主注意大小写,xml中节点大小写一定要和js中获取节点的名称大小写一致。
------解决方案--------------------
上面的代码我我拿到本地测试的时候精简的代码,xml文件内容和楼主给的一致,楼主可用吧success后的代码覆盖测试一下。注意是$(data).find("MAINBILL").each(function() 中MAINBILL一定要和xml文件中的大小写一致。