日期:2014-05-18  浏览次数:20732 次

遍历access数据库,生成XML文档
我的数据库的内容是:
tbDept:
ID ParentID DeptName LevelID RoleID
1 0 软体研发处 0 0
2 1 软体研发一部 0 0
3 1 软体研发二部 0 0
4 1 软体研发三部 0 0
5 2 软体研发一部一课 0 0
6 2 软体研发一部二课 0 0
7 3 软体研发二部一课 0 0
8 3 软体研发二部一课 0 0
9 4 软体研发三部一课 0 0
10 4 软体研发三部二课 0 0
11 5 AAA 1 1
12 5 BBB 1 1
......
28 10 RRR 2 2
我想用遍历这个tbDept,然后根据遍历的结果生成带有父子关系的XML文件,小女子望各位能人能够赐教,该如何实现这个XML文档

------解决方案--------------------
递归生成

先读取到DataTable里面,然后

http://dotnet.aspx.cc/file/Recursion-Genernate-XML.aspx
------解决方案--------------------
我帮你写了个,数据表就是你给出的那部分数据。
C# code
        OleDbData md = new OleDbData();
        md.ExecuteReader("select * from tbDept");
        XmlDocument xmlDoc = new XmlDocument();
        XmlElement root = xmlDoc.CreateElement("root");
        xmlDoc.AppendChild(root);
        while (md.Reader.Read())
        {
            int parentID = Convert.ToInt32(md.Reader["ParentID"]);
            XmlElement node = xmlDoc.CreateElement("node");
            for (int i = 0; i < md.Reader.FieldCount; i++)
                node.SetAttribute(md.Reader.GetName(i), md.Reader[i].ToString());
            if (parentID > 0)
            {
                xmlDoc.SelectSingleNode(string.Format(@"//node[@ID='{0}']", md.Reader["ParentID"])).AppendChild(node);
            }
            else
            {
                xmlDoc.DocumentElement.AppendChild(node);
            }
        }
        md.Close();
        xmlDoc.Save(Server.MapPath("~/test.xml"));