<Root>
<name id="1" Is_last="1" r_count_b="0" r_count_z="5416" type="H1001|">东方蓝鼎客户管理</name>
<name id="3" Is_last="0" r_count_b="0" r_count_z="67" type="H1001|005">编辑部</name>
<name id="67" Is_last="0" r_count_b="1" r_count_z="24" type="H1001|005|002">ld01</name>
<name id="68" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002">默认组</name>
<name id="70" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|003">02月</name>
<name id="71" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|004">03月</name>
<name id="72" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|005">04月</name>
<name id="73" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|006">05月</name>
<name id="74" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|007">06月</name>
<name id="75" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|008">07月</name>
<name id="76" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|009">08月</name>
<name id="77" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|010">09月</name>
<name id="78" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|011">10月</name>
<name id="79" Is_last="0" r_count_b="0" r_count_z="0" type="H1001|005|002|002|012">11月</name>
<name id="80" Is_last="1" r_count_b="0" r_count_z="0" type="H1001|005|002|002|013">12月</name> </Root>节点分级是通过type=“H1001|005|002|002|013”来决定的。就高手帮我看看怎么把这些展示到Treeview控件上
private void XmlOperation_Load(object sender, EventArgs e)
{
path = AppDomain.CurrentDomain.BaseDirectory + @"NameList.xml";
xml.Load(path);//加载xml文件
bindTvXml();
}
/// <summary>
/// 绑定TreeView
/// </summary>
private void bindTvXml()
{
for (int i = 0; i < xml.DocumentElement.ChildNodes.Count; i++)
{
XmlNode Xnode = xml.DocumentElement.ChildNodes[i];
TreeNode node = new TreeNode();
node.Text = Xnode.Attributes["name"].Value;
node.Tag = Xnode;
bindChildNode(node, Xnode);//绑定子节点
TvXml.Nodes.Add(node);
TvXml.HideSelection = false;
}
}
/// <summary>
/// 递归绑定子节点
/// </summary>
/// <param name="node"></param>
/// <param name="xml"></param>
private void bindChildNode(TreeNode node, XmlNode xml)
{
for (int i = 0; i < xml.ChildNodes.Count; i++)
{
TreeNode Childnode = new TreeNode();
XmlNode ChildXml = xml.ChildNodes[i];
Childnode.Text = ChildXml.Value;
Childnode.Name = "1";
Childnode.Tag = xml.ChildNodes[i];
if (ChildXml.HasChildNodes)
{
if (ChildXml.ChildNodes[0].NodeType == XmlNodeType.Text)
Childnode.Text = ChildXml.ChildNodes[0].InnerText;
else
bindChildNode(Childnode, ChildXml);
}
node.Nodes.Add(Childnode);
}
}