//加载描述的XML private bool loadXML() { //创建DataTable对象dt DataTable dt = new DataTable("clientXML"); //创建列 dt.Columns.Add(new DataColumn("IP", typeof(string))); dt.Columns.Add(new DataColumn("端口", typeof(string))); dt.Columns.Add(new DataColumn("事件", typeof(string))); dt.Columns.Add(new DataColumn("时间", typeof(string))); dt.Columns.Add(new DataColumn("备注1", typeof(string))); dt.Columns.Add(new DataColumn("备注2", typeof(string))); //装载文档 XmlDocument XmlDoc = new XmlDocument(); XmlDoc.Load("..\\..\\ClientStatus.xml"); //获取跟节点 XmlNode xn = XmlDoc.SelectSingleNode("client"); //获取子节点集合 XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xn_temp in xnl) { //将节点转为元素,以便得到节点的属性 XmlElement xe = (XmlElement)xn_temp; DataRow row = dt.NewRow(); row["IP"] = xe.GetAttribute("ip").ToString(); row["端口"] = xe.GetAttribute("port").ToString(); row["事件"] = xe.GetAttribute("event").ToString(); row["时间"] = xe.GetAttribute("datetime").ToString(); row["备注1"] = xe.GetAttribute("memo1").ToString(); row["备注2"] = xe.GetAttribute("memo2").ToString(); dt.Rows.Add(row); } DataSet ds = new DataSet("client"); ds.Tables.Add(dt); this.dataGridView1.DataSource = ds; this.dataGridView1.DataMember = ds.Tables[0].TableName; return true; }
<?xml version="1.0" encoding="utf-8" ?> <client> <point ip="127.0.0.1" port="40940"> <event>发送链路请求帧 </event> <datetime> 207.9.13 19:14</datetime> <memo1>尚未回复 </memo1> <memo2> 无</memo2> </point> <point ip="197.0.0.1" port="940"> <event>回复链路请求帧 </event> <datetime> 2017.9.13 19:14</datetime> <memo1>尚未回复2 </memo1> <memo2>无2</memo2> </point> </client>