个人认为原理是这样的 XmlDocument xdoc = new XmlDocument();            //string path = @"C:\test.xml";
            xdoc.LoadXml(@"C:\\test.xml");
            XmlNode xnode = xdoc.SelectSingleNode("student");
            XmlElement xle = (XmlElement)xnode;
            XmlNodeList xnl = xle.ChildNodes;            DataTable dt = new DataTable("student");
            DataColumn dc = dt.Columns.Add("name",typeof(string));
            //dt.Columns.Add("age",typeof(Int32));
            dt.Columns.Add("gender",typeof(string));
            dt.Columns.Add("address",typeof(string));
            DataRow dr = dt.NewRow();
            foreach (XmlNode xn in xnl)
            {
                XmlElement xl = (XmlElement)xn;
                XmlNodeList xlist = xl.ChildNodes;
                foreach (XmlNode xnd in xlist)
                {
                    if (xnd.Name == "name")
                    {
                        dr["name"] = ((XmlElement)xnd).Value;
                    }
                    //if (xnd.Name == "age")
                    //{
                    //    dr["age"] = int.Parse(((XmlElement)xnd).Value);
                    //}
                    if (xnd.Name == "gender")
                    {
                        dr["gender"] = ((XmlElement)xnd).Value;
                    }
                    if (xnd.Name == "address")
                    {
                        dr["address"] = ((XmlElement)xnd).Value;
                    }
                    dt.Rows.Add(dr);
                }
            }
        }