C# 读取 XML 到TreeView

原创 2007年10月07日 17:29:00
 


private void updateTreeView(string filename)
{
try
{
treeView1.Nodes.Clear();
//清空treeview
XmlDocument tmpxmldoc = new XmlDocument(); //实例化XML文档
tmpxmldoc.Load(filename); //加载XML文档
FillTree(tmpxmldoc.DocumentElement, treeView1.Nodes);
//(参数1:xml的根, treeView的结点集合)                                                     
//DocumentElement:回一个在单一根文件元素中包含数据的对象 
//如果文件中不包含根节点,将传回null。 

}

catch(Exception ex)
{
this.filename_box.Text = ex.Message;
}

}
 
private void FillTree(XmlNode node, TreeNodeCollection parentnode)
{
if(node == null || node.NodeType == XmlNodeType.Text || node.NodeType == XmlNodeType.CDATA)//为null ,或者为内容或转义CDATA等不能有任何子结点。
return;
            
TreeNodeCollection tmptreenodecollection 
= AddNodeToTree(node, parentnode);
foreach(XmlNode tmpchildnode in node.ChildNodes) //递归增加现有结点的所有孩子结点。
{
FillTree(tmpchildnode, tmptreenodecollection);
}


}

private TreeNodeCollection AddNodeToTree(XmlNode node, TreeNodeCollection parentnode)
{
TreeNode newchildnode 
= CreateTreeNodeFromXmlNode(node);  //从xml节点转化成一个treeview的节点。

if(newchildnode == nullreturn parentnode; //如果什么都没有,返回父结点的集合

if(parentnode != null) parentnode.Add(newchildnode); //在他的父结点下增加一个新的节点

return newchildnode.Nodes;     //返回新节点的集合
}

private TreeNode CreateTreeNodeFromXmlNode(XmlNode node)
{
TreeNode tmptreenode 
= new TreeNode();

if((node.HasChildNodes) && (node.FirstChild. != null)) //时候有子节点,该节点第一个自己不为NULL.
{
tmptreenode 
= new TreeNode(node.Name);
TreeNode tmptreenode2 
= new TreeNode(node.FirstChild.);
tmptreenode.Nodes.Add(tmptreenode2);
}

else if(node.NodeType != XmlNodeType.CDATA) 
{
tmptreenode 
= new TreeNode(node.Name);
}


return tmptreenode;
}

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C#TreeView读取Xml,TreeView导出到Xml

实现功能有 1.根据Xml生成TreeView 2.双击修改节点 3.右键添加子节点或添加要节点 4.右键删除当前选择的节点 5.将修改后的TreeView重新生成Xml文档 源码下载  ...

c#如何实现从xml中加载树目录,并且显示完整的Text

谈到xml,相信有一定编程基础的童鞋们都比较清楚了。xml文件格式类似于嵌套的样式,这种独特的层次结构很容易使我们联想到目录树,因此这不禁让我们对两者之间产生一种牵线的想法。这不禁,使我们有这么一个问...
  • ztzi321
  • ztzi321
  • 2015年03月05日 08:35
  • 2146

C#打开xml,并绑定TreeView

XML读取与写入  这个代码有个问题就是XML一个节点的属性 xNode.Attributes不能显示出来   //加载XML文件,并在TreeView上显示         publi...

C#实现TreeView向XML的绝对转换类 .

从第一次接触XML开始就想写一个能实现tree和XML灵活转换的类了。 写这个类大概用去了将近半天的时间,花的时间有些长了。呵呵。。好在收获颇多,熟练了XML的读写类,对C#中的foreach循环也...
  • Baple
  • Baple
  • 2014年02月24日 18:41
  • 976

C#TreeView控件与XML相关操作

在C#的应用开发中,TreeView控件是一种比较常用的控件,主要反映了父子节点之间的关系,由于TreeView控件与XML文件的组织结构比较类似,可以把TreeView控件与XML文件结合使用。Tr...

读取XML文档 内容显示在treeView

  • 2011年04月23日 22:36
  • 41KB
  • 下载

Silverlight使用XmlReader读取XML数据到TreeView中

以前写的了,Silverlight用的人貌似不多。 主要是使用XmlReader读取XML的Attribute数据读取到TreeViewItem的Header和DataContext中,点击Tree...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 读取 XML 到TreeView
举报原因:
原因补充:

(最多只允许输入30个字)