XML 与DB交互

 

 第一:DB 数据通过Datatable 或者 Datareader 写xml文件

                //方法一 :通过Dt.WriteXml
                string sql = "select * from sys_subject";
               DataTable dt= HQLHelper.ExecuteDataTable(sql);
               string s = System.AppDomain.CurrentDomain.BaseDirectory;
               s = s + "\\Config\\" + "a.xml";
               dt.WriteXml(s);//将读出来的内容写到一个xml文件中

               //方法二:通过XDocument 类
               //我们创建的xml文件的根节点是subject,节点属性是id,属性值是subjectInfo
               XDocument doc = new XDocument(new XElement("subject", new XAttribute("id", "subjectInfo")));
                XElement root = doc.Root;

                foreach (DataRow dr in dt.Rows)
                {
                    //从根节点下创建元素XElement对象,即展示在页面上就是创建元素,该元素的属性有s_id,值为dr["s_id"]中的值。
                    //创建的该元素的子元素为s_name,文本值为dr["s_name"]的值
                    XElement ele = new XElement("subjectlist", new XAttribute("s_id", dr["s_id"]), new XElement("s_name", dr["s_name"]));
                    doc.Root.Add(ele);
                }
                //将所创建的一系列节点保存在s.xml文件中
                doc.Save(s);
Code

写入后的文件:

注意: 根节点、子节点及元素名称对应。

 

第二:xml文件 导入到DB

1.加载 xml文件

//构造一个xml文档对象
XDocument provinceDoc = XDocument.Load(filename);
//获取文档对象的根节点
XElement provinceroot = provinceDoc.Root;
//获取根节点下的所有元素,返回的是一个IEnumerable类型的
IEnumerable<XElement> eles = provinceroot.Elements(); 

2.循环遍历,作为参数写入 insert 参数

foreach (var xElement in eles)
{
string sid="";
 //获取xml属性名称为s_id的属性值
//如果xml属性名称为s_id的属性的属性值为null时进行的操作
if (xElement.Attribute(s_id) == null)
{

sid= "0";

}
else
{sid= xElement.Attribute(s_id).Value;

}

}
导入DB Code

注意:属性名称 、属性值及元素。

参考:http://www.cnblogs.com/hanwenhuazuibang/archive/2013/05/09/3067842.html

 

 
posted @ 2013-05-17 14:44  365lei  阅读(399)  评论(0编辑  收藏  举报