将XML文件添加到TreeView节点,怎么没显示节点啊?

藏花蕴秀 2012-05-21 04:00:49
代码如下,调试时TreeView里还是没东西啊,什么情况,谢谢

public void SetPhone()
{
string fileName = "Phone.xml";
try
{
//读取XML文件
TreeNode node;
XmlReader reader = XmlReader.Create(fileName);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element) //元素节点
{
node = new TreeNode();
switch (reader.Depth)
{
case 0: //Phone
node.Text = reader.GetAttribute("name");
twPhone.Nodes.Add(node);
break;
case 1: //Brand
node.Text = reader.GetAttribute("name");
twPhone.Nodes[0].Nodes.Add(node);
break;
case 2: //Model
node.Text = reader.GetAttribute("name");
twPhone.Nodes[0].Nodes[twPhone.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
break;
default: break;
}
}
reader.Close();
twPhone.ExpandAll();
}


}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
}
...全文
56 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
熙风 2012-05-21
  • 打赏
  • 举报
回复
递归绑定xml、

 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);
}

}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧