您的位置:首页 > Web前端 > JQuery

jquery json xml关于解析两次json数据动态取值的处理方式

2014-10-11 14:59 721 查看
<span style="font-size:18px;">第一种:解析xml方式</span>
这是我第一次接触到解析xml,也算是xml当中过程比较麻烦的,直接拼接xml文件,在返回給后台,后台查询出数据,前台再一次调用,在解析出来xml数据来。
</pre><pre name="code" class="html">function sucInfo(){
var xmlfp="<?xml version='1.0' encoding='utf-8' ?>";
xmlfp +="<taxML comment='查询'>";
xmlfp +="<business>";
xmlfp +="<invoiceCode>";
xmlfp +=dm;
xmlfp +="</invoiceCode>";
xmlfp +="<invoiceNUMBER>";
xmlfp +=hm;
xmlfp +="</invoiceNUMBER>";
xmlfp +="</business>";
xmlfp +="</taxML>";

$.ajax({
type:"post",
url:"http://***",
data:{
putxml:xmlfp
},
dataType:"xml",
success:function(data){

$(data).find("business").each(function(){
$(data).find("group").each(function(){
$(data).find("data").each(function(){
if($(data).find("data").length<6){
$("#fpzwch").html("当前无该信息,请检查是否填写正确");
}else{
if($(this).attr('name')=="taxpayerId"){
var id=$(this).attr('value');//看下面贴出来的xml数据,得到的是data里面的value值
}else if($(this).attr('name')=="taxpayerName"){
var name=$(this).attr('value');
}else if($(this).attr('name')=="dealDate"){
var date=$(this).attr('value');
}
$("#fpzwch").html(fpinfo);
}
})
})
})
},
error:function(data){
$("#message").text("服务器连接失败,点击返回");
$("#pop").popup("open");
backs();
}

});
}

上面是全部的解析过程,以下是后台返回来的数据,

<business id="QueryInvoice.Ctais.ChannelServer">
<group>
<data name="returnCode" value="00"/>
<data name="returnMessage" value="成功"/>
<data name="taxpayerId" value="01"/>
<data name="taxpayerName" value="公司"/>
<data name="buyDate" value="20140723"/>
<data name="dealDate" value="20140822"/>
</group>
</business>

第二种解析xml数据

后台直接通过json数据返回给我,我前台直接获取xml数据,然后取出我想要的内容;直接帖代码

<span style="white-space:pre">	</span>function Login(){

$.ajax({
type:"get",
url:"http***",
data:"",
dataType:"json",
success:callback

})

}
function callback(data){
var obj=eval(data);
$.each(obj.data,function(i,item){
//$(item.result).find('returnCode').text();
var code = $(item.result).find('returnCode').text();
if(code==100){
alert("登陆成功");
}else if(code==01){
alert("登陆失败");
}
})
}


后台传过来的值

{"sequence":1413007532505,"data":[{"result":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><taxML><business comment=\"\"><returnCode>100</returnCode><returnMessage>鐧</returnMessage><returnData><qymc>徃</qymc></returnData></business></taxML>"}],"status":0,"meta":{},"totalRows":0,"startRow":0,"endRow":0,"statusType":null}


第三种直接取xml的数据

xml:$('<root><m>1</m><n>2</n></root>').find('n').text();


$(xml).find("MXXX").each(function(i){
pzdm=$(this).attr('PZZL_DM');
})


后台的值

{"sequence":1413533692355,"data":[{"result":"<?xml version='1.0' encoding='GBK'?><ROOT><NSRSBH>572</NSRSBH><FWQRQ>207</FWQRQ><YSBQC><MXXX ZSXM_DM=\"04\" SSSQ_Q=\"2011\" SSSQ_Z=\"2031\" SBQX=\"2013\" PZZL_DM=\"307\" REPCODE=\"SB08\" PZXH=\"0000\" YSBRQ=\"\" YBTSE=''></MXXX></YSBQC><ERR_MSG></ERR_MSG></ROOT>"}],"status":0,"meta":{},"totalRows":0,"startRow":0,"endRow":0,"statusType":null}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery mobile xml