要求:把XML文件中的数据转换为DataSet对象,然后用GridView数据库控件显示出来。
方法:页面初始化调用GetDataSet()函数,然后创建保存数据的DataSet对象ds和DataTable对象的dataTable,在从XML文件xmlfile.xml中读取数据,并添加到对象dataTable中,最后使用dataTable填充DataSet对象ds,最后进行GridView绑定。
xmlfile.xml文件内容格式如下:
- <?xml version="1.0"?>
- <Users>
- <Users UserID="1" UserName="WuWei" RealName="无为" CreateDate="2008-06-24"/>
- <Users UserID="2" UserName="CongHua" RealName="葱花" CreateDate="2008-06-24"/>
- <Users UserID="3" UserName="YangYang" RealName="样样" CreateDate="2008-06-24"/>
- </Users>
<?xml version="1.0"?> <Users> <Users UserID="1" UserName="WuWei" RealName="无为" CreateDate="2008-06-24"/> <Users UserID="2" UserName="CongHua" RealName="葱花" CreateDate="2008-06-24"/> <Users UserID="3" UserName="YangYang" RealName="样样" CreateDate="2008-06-24"/> </Users>
- 代码如下:<PRE class=csharp name="code">using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Xml;
- public partial class XmlToDS : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if(!Page.IsPostBack)
- {
- ///获取数据
- DataSet ds = GetDataSet();
- ///绑定控件的数据
- MyGridView.DataSource = ds;
- MyGridView.DataBind();
- }
- }
- private DataSet GetDataSet()
- { ///创建DataSet
- DataSet ds = new DataSet();
- ///创建DataTable
- DataTable dataTable = new DataTable("Users");
- dataTable.Columns.Add("UserID", typeof(int));//dataTable.Columns获取该表列的集合
- dataTable.Columns.Add("UserName");
- dataTable.Columns.Add("RealName");
- dataTable.Columns.Add("CreateDate",typeof(DateTime));
- try
- { ///导入XML文件
- XmlDocument doc = new XmlDocument();//XmlDocument类表示XML文档,它继承System.XML。
- doc.Load(Server.MapPath("xmlfile.xml"));//加载指定的 XML 数据。
- if(doc == null)
- {
- return null;
- }
- ///读取XML文件
- XmlNodeList nodeList = doc.SelectNodes("/Users/Users");//XmlNodeList表示排序的节点集合。 doc.SelectNodes()返回一个 XmlNodeList。
- foreach(XmlNode node in nodeList)
- { ///读取每一行的数据
- DataRow row = dataTable.NewRow();
- row["UserID"] = Convert.ToInt32(node.Attributes["UserID"].Value);//通过XmlNode.Attributes属性,获取一个 XmlAttributeCollection,它包含该节点的属性。
- row["UserName"] = node.Attributes["UserName"].Value;
- row["RealName"] = node.Attributes["RealName"].Value;
- row["CreateDate"] = Convert.ToDateTime(node.Attributes["CreateDate"].Value);
- dataTable.Rows.Add(row);
- }
- }
- catch(Exception ex)
- { ///抛出异常
- throw new Exception(ex.Message,ex);
- }
- ds.Tables.Add(dataTable);
- return (ds);
- }
- }
- </PRE>