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的引用