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文件中的大小写一致。