递归遍历XML生成树
来源:互联网 发布:seo服务器 编辑:程序博客网 时间:2024/05/19 04:55
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Xml;
- public partial class Default_aspx
- {
- void Page_Load(object sender, EventArgs e)
- {
- string xmlstr = "<?xml version=/"1.0/"?><root><Note NodeName=/"的1/"><Note NodeName=/"的2/"><Note NodeName=/"的3/" /><Note NodeName=/"的4/" /></Note><Note NodeName=/"的5/" /></Note><Note NodeName=/"的6/"><Note NodeName=/"的7/"><Note NodeName=/"的8/" /><Note NodeName=/"的9/" /></Note><Note NodeName=/"的10/" /></Note></root>";
- IterateXml(xmlstr);
- }
- private void IterateXml(string xmlstr)
- {
- XmlDocument xmldoc = new XmlDocument();
- xmldoc.LoadXml(xmlstr);
- XmlNode worknode;
- TreeNode rootnode;
- for (int i = 0; i < xmldoc.DocumentElement.ChildNodes.Count; i++)
- {
- worknode = xmldoc.DocumentElement.ChildNodes[i];
- if (worknode.ChildNodes.Count > 0)
- rootnode = IterateChild(worknode);
- else
- rootnode = new TreeNode(worknode.Name);
- this.TreeView1.Nodes.Add(rootnode);
- }
- }
- private TreeNode IterateChild(XmlNode rootnode)
- {
- XmlNode worknode = rootnode;
- System.Web.UI.WebControls.TreeNode retnode = new TreeNode(worknode.Attributes["NodeName"].Value); ;
- TreeNode newch;
- if (worknode.ChildNodes.Count < 1)
- {
- newch = new TreeNode(worknode.Attributes["NodeName"].Value);
- retnode = newch;
- }
- else
- {
- for (int i = 0; i < worknode.ChildNodes.Count; i++)
- {
- retnode.ChildNodes.Add(IterateChild(worknode.ChildNodes[i]));
- }
- }
- return retnode;
- }
- }
- ======================================================
- 供测试XML
- <?xml version = "1.0 " encoding= "utf-8 "?>
<types>
<type id= "0 " uid= "-1 " value= "我的超眩个人桌面 " />
<type id= "0.0 " uid= "0 " value= "电子邮件 " />
<type id= "0.0.1 " uid= "0.0 " value= "安徽工业大学 "/>
<type id= "0.0.2 " uid= "0.0 " value= "安徽农业大学 "/>
<type id= "0.0.3 " uid= "0.0 " value= "合肥工业大学 "/>
<type id= "0.1 " uid= "0 " value= "短消息 " />
<type id= "0.2 " uid= "0 " value= "公司通知 " />
<type id= "0.3 " uid= "0 " value= "日程安排 " />
<type id= "0.4 " uid= "0 " value= "个人考勤 " />
<type id= "0.5 " uid= "0 " value= "通讯录 " />
<type id= "0.6 " uid= "0 " value= "个人设置 " />
<type id= "1 " uid= "-1 " value= "玩转工作流程 " />
<type id= "1.0 " uid= "1 " value= "起草公文 " />
<type id= "1.1 " uid= "1 " value= "已起草的公文 " />
<type id= "1.2 " uid= "1 " value= "已提交的公文 " />
<type id= "1.3 " uid= "1 " value= "传阅公文 " />
<type id= "1.4 " uid= "1 " value= "待阅公文 " />
<type id= "1.5 " uid= "1 " value= "已审阅的公文 " />
<type id= "1.6 " uid= "1 " value= "已批的公文 " />
<type id= "1.7 " uid= "1 " value= "公文检索 " />
</types>