ASP.NET把DataTable转成XML文件的函数(DataSet转XML也可以)

下面我将用ASP.NET把DataTable的数据转成XML格式,并输出生成XML文件。
数据库表position有三个字段:
字段名             字段类型
position_id         int
position_name   varchar
position_desc     varchar
下面是Datatable转XML的生成源码:
 C# Code [http://www.xueit.com]        protected void Page_Load(object sender, EventArgs e)
        {
            //通过数据访问层把position读取到Datatable
            BizRules.PersonnelDAL pl = new PersonnelDAL();
            DataTable dt = pl.Getposition();
            StringBuilder str = new StringBuilder();
            str.Append(DataTableToXml(dt));
            this.CreateXml(str.ToString(), "test.xml");
            Response.Write("生成test.xml成功");
        }

        /// <summary>
        /// 生成文件
        /// </summary>
        /// <param name="val"></param>
        /// <param name="filename"></param>
        public void CreateXml(string val, string filename)
        {
            UnicodeEncoding ucode = new UnicodeEncoding();
            StreamWriter sw = new StreamWriter(Server.MapPath(filename));
            sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");
            sw.WriteLine(val);
            sw.Close();
            sw.Dispose();
        }

        /// <summary>
        /// 转换成XML格式字符串
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public string DataTableToXml(DataTable dt)
        {
            StringBuilder strXml = new StringBuilder();
            strXml.AppendLine("<XmlTable>");
            for (int i = 0; i < dt.Rows.Count; i  )
            {
                strXml.AppendLine("    <rows>");
                for (int j = 0; j < dt.Columns.Count; j  )
                {
                    strXml.AppendLine("        <"   dt.Columns[j].ColumnName   ">"   dt.Rows[i][j]   "</"   dt.Columns[j].ColumnName   ">");
                }
                strXml.AppendLine("    </rows>");
            }
            strXml.AppendLine("</XmlTable>");
            return strXml.ToString();
        }下面看下生成XML文件的效果:
<?xml version="1.0" encoding="utf-8"?>
<XmlTable>
 <rows>
  <position_id>29</position_id>
  <position_name>业务员</position_name>
  <position_desc></position_desc>
 </rows>
 <rows>
  <position_id>30</position_id>
  <position_name>业务经理</position_name>
  <position_desc></position_desc>
 </rows>
 <rows>
  <position_id>31</position_id>
  <position_name>业务总监</position_name>
  <position_desc></position_desc>
 </rows>


</XmlTable>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值