xml和json解析

xml嵌套json代码解析 
1
<?xml version="1.0" encoding="utf-8"?> 2 3 <Return> 4 <Rows>1</Rows> 5 <RetMsg>查询成功</RetMsg> 6 <Orders> 7 <OrderItem> 8 <tid>19613313216037</tid> 9 <status>WAIT_SELLER_SEND_GOODS</status> 10 <type>fixed</type> 11 <seller_nick>拉阿嘎</seller_nick> 12 <buyer_nick>ljlsghf</buyer_nick> 13 <created>2016-06-03 11:13:49.0</created> 14 <modified>2016-06-03 11:15:06.0</modified> 15 <jdp_hashcode/> 16 <jdp_response>{"trade_fullinfo_get_response":{"trade":{"alipay_no":"201606521533221750200578318","buyer_area":"北京 联通","buyer_email":"","buyer_ip":"MjEwLjgsjsgjOS4yNQ==","buyer_nick":"li565604","buyer_obtain_point_fee":0,"buyer_rate":false,"created":"2016-06-03 11:13:49","modified":"2016-06-03 11:15:06","num":2,"num_iid":53292715566756,"orders":{"order":[{"adjust_fee":"0.00","buyer_rate":false,"cid":51205462,"discount_fee":"0.00","is_daixiao":false,"is_oversold":false,"num":2,"num_iid":53222457841756,"oid":19656632482346037,"order_from":"TAOBAO","outer_iid":"ccddeefffds","payment":"2.20","pic_path":"http://img01.taobaocdn.com/baojd.jpg","price":"1.10","refund_status":"NO_REFUND","seller_rate":false,"seller_type":"C","snapshot_url":"j:1965ga2346037_1","status":"WAIT_SELLER_SEND_GOODS","title":"格式","total_fee":"2.20"}]},"pay_time":"2016-06-03 11:15:05","payment":"2.20","pcc_af":0,"pic_path":"http://img01.taobaocdn.com/bao/uploaded/i1/T1aiVp.jpg","point_fee":0,"post_fee":"0.00","price":"1.10","real_point_fee":0,"received_payment":"0.00","receiver_address":"hshj单据","receiver_city":"","receiver_district":"","receiver_mobile":"","receiver_name":"不需收货人","receiver_state":"","receiver_zip":"000000","seller_alipay_no":"fhshsfh18@qq.com","seller_can_rate":false,"seller_cod_fee":"0.00","seller_email":"54151435454@qq.com","seller_flag":0,"seller_mobile":"13hshfhfh53","seller_name":"思连康来看","seller_nick":"啊嘎嘎","seller_rate":false,"service_tags":{},"shipping_type":"virtual","snapshot_url":"j:16526556582346037_1","status":"WAIT_SELLER_SEND_GOODS","tid":19655413453037,"title":"发啊是服了","total_fee":"2.20","trade_from":"TAOBAO","type":"fixed"}}}</jdp_response> 17 <jdp_created>2016-06-03 11:13:51.0</jdp_created> 18 <jdp_modified>2016-06-03 11:15:07.0</jdp_modified> 19 </OrderItem> 20 </Orders> 21 </Return>

以下是用xmlDocument和Newtonsoft.Json解析出需要的节点内容

 1 XmlDocument doc = new XmlDocument();
 2 doc.LoadXml(strXml);
 3 XmlElement root = doc.DocumentElement;
 4 XmlNode Rows = root.SelectSingleNode("Rows");
 5 if (Rows==null)
 6 {
 7   return;
 8 }
 9 int orderCount = (int)Rows.InnerText;
10 XmlNode RetMsg = root.SelectSingleNode("RetMsg");
11 if (RetMsg==null)
12 {
13     return;
14 }
15 string retmsg=RetMsg.InnerText;
16 XmlNodeList orderList = root.SelectNodes("Orders");
17 if (orderList==null||orderList.Count<=0)
18 {
19     return;
20 }
21 foreach (XmlNode order in orderList)
22 {
23      XmlNode orderItem = order.SelectSingleNode("OrderItem");
24      if (orderItem==null)
25      {
26          continue;
27       }
28       XmlNode jdpResponse = orderItem.SelectSingleNode("jdp_response");
29       if (jdpResponse==null)
30       {
31           continue;
32       }
33       string jdpResponseStr = jdpResponse.InnerText;
34       JObject jobj = (JObject)JsonConvert.DeserializeObject(jdpResponseStr);
35       if (jobj==null)
36       {
37            continue;
38       }
39       JToken trade_fullinfo_get_response=jobj.SelectToken("trade_fullinfo_get_response");
40       if (trade_fullinfo_get_response==null)
41       {
42           continue;
43       }
44       JToken trade=trade_fullinfo_get_response.SelectToken("trade");
45       if (trade==null)
46       {
47            continue;
48       }
49       string alipayNo=trade.SelectToken("alipay_no").ToString();
50       string tid = trade.SelectToken("tid").ToString();
51 
52       JToken orders = trade.SelectToken("orders");
53       if (orders==null)
54       {
55            continue;
56       }
57       JToken jOrder=orders.SelectToken("order");
58       foreach (JToken item in jOrder)
59       {
60            string cid = item.SelectToken("cid").ToString();
61            string outeriid = item.SelectToken("outer_iid").ToString();
62       }
63 }

需要添加Newtonsoft.Json和Newtonsoft.Json.Linq的引用

 



 

posted @ 2016-06-04 18:24  易雪寒  阅读(690)  评论(0)    收藏  举报