- //DataSet,非表型XML解析
- //C:/test.xml
- //<?xml version="1.0" encoding="utf-8"?>
- //<OrderInfo>
- // <CustomerInfo>
- // <Customer name="pyh" operationDate="2008-09-19" time="00:00:00" id="2002032201" />
- // </CustomerInfo>
- // <OrderProcesses>
- // <PRODUCT ID="PROD001" name="J2SE">
- // <ADDRESS>
- // <ADDRESSDETAILS province="HeiLongJiang" name="HIT" />
- // <ADDRESSDETAILS province="LiaoNing" name="HD" />
- // </ADDRESS>
- // <PHONE>
- // <PHONENUMBER directionNumeber="0451" Number="86677710" />
- // <PHONENUMBER directionNumeber="0411" Number="3198297" />
- // </PHONE>
- // </PRODUCT>
- // <PRODUCT ID="PROD002" name="J2EE">
- // <ADDRESS>
- // <ADDRESSDETAILS province="HeiLongJiang1" name="HIT1" />
- // <ADDRESSDETAILS province="LiaoNing1" name="HD1" />
- // </ADDRESS>
- // <PHONE>
- // <PHONENUMBER directionNumeber="0452" Number="86677714" />
- // <PHONENUMBER directionNumeber="0413" Number="3198275" />
- // </PHONE>
- // </PRODUCT>
- // <PRODUCT ID="PROD003" name="J2ME">
- // <MESSAGE />
- // <ADDRESS>
- // <ADDRESSDETAILS province="HeiLongJiang2" name="HIT2" />
- // <ADDRESSDETAILS province="LiaoNing2" name="HD2" />
- // </ADDRESS>
- // <PHONE>
- // <PHONENUMBER directionNumeber="0455" Number="86677716" />
- // <PHONENUMBER directionNumeber="0416" Number="3198278" />
- // </PHONE>
- // </PRODUCT>
- // </PROC>
- // </OrderProcesses>
- //</OrderInfo>
- DataSet ds = new DataSet();
- string fullPathXml = @"C:/test.xml";
- XDocument xDoc = XDocument.Load(fullPathXml);
- ds.ReadXml(xDoc.CreateReader());
- DataTable dt = ds.Tables[0];
- //ds.Tables[?]
- //0:OrderInfo //什么也没有
- //1:CustomerInfo //什么也没有
- //2:Customer //有一行
- //3:OrderProcesses //什么也没有
- //4:PRODUCT //什么也没有
- //5:ADDRESS //什么也没有
- //6:ADDRESSDETAILS //有六行,所有的"ADDRESSDETAILS"tag
- //7:PHONE //什么也没有
- //8:PHONENUMBER //有六行,所有的"PHONENUMBER"tag
- //9:MESSAGE //什么也没有
- //取得Customer的信息
- DataTable dt2 = ds.Tables[2];
- DataRow dr2 = dt2.Rows[0];
- string CustomerName = (string)dr2.ItemArray.GetValue(0); //Customer name="pyh"
- string CustomerOperationDate = (string)dr2.ItemArray.GetValue(1); //operationDate="2008-09-19"
- string CustomerTime = (string)dr2.ItemArray.GetValue(2); //time="00:00:00"
- //取得ADDRESSDETAILS的信息
- DataTable dt6 = ds.Tables[6];
- DataRow dr60 = dt2.Rows[0]; //<ADDRESSDETAILS province="HeiLongJiang" name="HIT" />
- DataRow dr61 = dt2.Rows[1]; //<ADDRESSDETAILS province="LiaoNing" name="HD" />
- string ADDRESSDETAILSProvince = (string)dr60.ItemArray.GetValue(0); //province="HeiLongJiang"
- string ADDRESSDETAILSName = (string)dr60.ItemArray.GetValue(1); //name="HIT"
- //取得ADDRESSDETAILS节点所在的PRODUCT节点的ID,ADDRESS_ADDRESSDETAILS是relationName,dataSet倒入xml文件时自带的
- string temp = (string)dr60.GetParentRow("ADDRESS_ADDRESSDETAILS").GetParentRow("PRODUCT_ADDRESS").ItemArray.GetValue(0);
- //用DataTable直接给DataGridView赋值
- //dataGridView1不含有任何列
- dataGridView1.DataSource = dt6; //dataGridView1将自动产生两列:province,name。并且追加六条数据。
- //|province | name |
- //|HeiLongJiang | HIT |
- //|LiaoNing | HD |
- //|HeiLongJiang1 | HIT1 |
- //|LiaoNing1 | HD1 |
- //|HeiLongJiang2 | HIT2 |
- //|LiaoNing2 | HD2 |
DataSet,非表型XML解析
最新推荐文章于 2024-09-08 22:51:42 发布