XML与DataSet/DataTable的转换(一)自定义xml结构

 

第一:自定义xml结构

  public void ConvertDataSetToXML(string path, DataSet dsSrc)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                ///声明xml头部
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
                doc.AppendChild(dec);
                ///创建根节点
                ///根据井号确定根节点名
                //string strRootName = Regex.Replace(AppParams.mdlPrjInfo.XM, @"\s", "");
                XmlElement root = doc.CreateElement("root");           
                doc.AppendChild(root);
                ///将dsOrgiData 中的数据 循环加入root;
                for (int i = 0; i < dsSrc.Tables.Count; i++)
                {
                    DataTable dt = dsSrc.Tables[i];                    
                    AddTableAsNode(dt, root, doc);
                }
                doc.Save(path);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

        }
        /// <summary>
        /// 一个表作为一个节点导出
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="root"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        private bool AddTableAsNode(DataTable dt, XmlElement root, XmlDocument doc)
        {
            try
            {
                bool bRst = false;

                XmlElement xmlTable = doc.CreateElement(dt.TableName);
                XmlElement xmlRow = null;

                for (int row = 0; row < dt.Rows.Count; row++)
                {
                    xmlRow = doc.CreateElement("Rows");
                    for (int col = 0; col < dt.Columns.Count; col++)
                    {
                        string strName = dt.Columns[col].ColumnName;

                        xmlRow.SetAttribute(strName, dt.Rows[row][col].ToString());
                    }
                    xmlTable.AppendChild(xmlRow);
                }
                root.AppendChild(xmlTable);

                return bRst;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值