DevExpress之TreeList的研究绑定XML文件

上次的递归调用进行对XML文件读取限制比较大,这次静态进行读取,思路还是先把XML读取到DataTable中然后进行绑定,代码入下:

   private DataTable CreatTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("ParentID");
            dt.Columns.Add("Name");
            XmlDocument xmlDoc=new XmlDocument();
            xmlDoc.Load(g_filepath);
            XmlNode rootnode = xmlDoc.DocumentElement;
            dr = dt.NewRow();
            int Id = 1;
            dr["ID"] = Id++;
            dr["ParentID"] = 0;
            dr["Name"] = rootnode.Name.ToString();
            dt.Rows.Add(dr);
            if (rootnode.HasChildNodes)
            {
                XmlNodeList xmlnodelist = rootnode.ChildNodes;
                foreach (XmlNode xmlnode in xmlnodelist)
                {
                    dr = dt.NewRow();
                    dr["ID"] = Id++;
                    dr["ParentID"] = 1;
                    dr["Name"] = xmlnode.Name.ToString();
                    dt.Rows.Add(dr);
                    if (xmlnode.HasChildNodes)
                    {
                        int j = 1;
                        XmlNodeList nodelist = xmlnode.ChildNodes;
                        foreach (XmlNode node in nodelist)
                        {
                            int pId=Id;
                            dr = dt.NewRow();
                            dr["ID"] = Id++;
                            dr["ParentID"] =pId-j ;
                            dr["Name"] =node.Name.ToString();
                            dt.Rows.Add(dr);
                            j++;
                            if (node.HasChildNodes)
                            {
                                int i = 1;
                                XmlNodeList list = node.ChildNodes;
                                foreach (XmlNode Node in list)
                                {
                                    if (Node.NodeType == XmlNodeType.Text)
                                    {
                                        continue;
                                    }
                                    else
                                    {
                                        int ppId = Id;
                                        dr = dt.NewRow();
                                        dr["ID"] = Id++;
                                        dr["ParentID"] = ppId - i;
                                        dr["Name"] = Node.Name.ToString();
                                        dt.Rows.Add(dr);
                                        i++;
                                        j++;
                                    }
                                }
                            }
                            else
                            {
                                continue;
                            }
                        }
                    }
                    else
                    {
                        continue;
                    }

                }
            }
            return dt;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇