C# Datatable treeview XML

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:59:55
XML:
-----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-16" ?>
<root>
<BM>
<Name>物理端点</Name>
<BM>
<Name>本地网段</Name>
<BM>
<Name>本机</Name>
</BM>
</BM>
<BM>
<Name>广播地址</Name>
</BM>
<BM>
<Name>组播地址</Name>
</BM>
<BM>
<Name>网关</Name>
</BM>
</BM>
<BM>
<Name>IP端点</Name>
<BM>
<Name>本地子网</Name>
</BM>
<BM>
<Name>Internet地址</Name>
</BM>
<BM>
<Name>私有网络</Name>
</BM>
<BM>
<Name>组播地址</Name>
</BM>

我给你提个建议哈,不知道这个xml文件是不是你自己定义的,如果是自己定义的,那我觉得很不合理,因为捏,在xml中,它主要操作对象是节点,而不是值。。你的这个xml文件就相当于浪费了很多节点。这样算法的时间复杂度就无故增加了N倍。效率也就低了N倍。而且算法实现起来也很不方便。。所以哈,应该用尽可能少的节点来结构化数据。。 比如把值赋给节点属性。这样就可减少一半的节点
如果客观原因导致这样的结构,那就勉为其难了哈
下面的这个程序是根据你提供的xml编写的,所以不是通用哈,比如你把文件改来含有<BM><BM>这样的情况就会混乱。。。 但你可以适当的更改一下

/// <summary>
/// 绑定TreeView控件
/// </summary>
/// <param name="treeview">需要进行绑定的TreeView控件</param>
protected void BindTreeView(TreeView treeview)
{
//利用xmldoc对象读取xml文件
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("xmlfile.xml"));//xml文件地址
//读取根节点
XmlElement xml = xmldoc.DocumentElement;
TreeNode tn = new TreeNode();
tn.Text = "根结点";
//递归遍历节点
gNodes(xml, tn);//递归获取节点
treeview.Nodes.Add(tn);
}
/// <summary>
/// //递归遍历节点
/// </summary>
/// <param name="xmlnode"