C# 在C中不使用XML文档中的值填充树视图#
在VisualStudio2010中使用Visual C#,我按照以下示例将XML文档的节点添加到树视图中 到目前为止,这一切都很好。但是#7中的给定代码段显示所有节点,包括值,例如,当到达C# 在C中不使用XML文档中的值填充树视图#,c#,xml,treeview,C#,Xml,Treeview,在VisualStudio2010中使用Visual C#,我按照以下示例将XML文档的节点添加到树视图中 到目前为止,这一切都很好。但是#7中的给定代码段显示所有节点,包括值,例如,当到达2时,也会显示值2 如何更改示例,以便只将所有节点名称(不包括其值)填充到树视图中?请注意下面的代码: if (inXmlNode.HasChildNodes) { // child nodes for (...) { xNode = inXmlNode.ChildN
2
时,也会显示值2
如何更改示例,以便只将所有节点名称(不包括其值)填充到树视图中?请注意下面的代码:
if (inXmlNode.HasChildNodes)
{
// child nodes
for (...)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(new TreeNode(xNode.Name)); // here the leafs are created
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else
{
// it's a leaf
inTreeNode.Text = ... // here it is set
}
根据您的要求,您应该重新构造整个递归方法,但一个简单的修复方法是将HasChildNodes向上移动:
if (inXmlNode.HasChildNodes)
{
// child nodes
for (...)
{
xNode = inXmlNode.ChildNodes[i];
if (! xNode.HasChildNodes) // a leaf?
continue; // then skip
inTreeNode.Nodes.Add(new TreeNode(xNode.Name)); // here the leafs are created
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else
{
// it's a leaf, should only happen for the root now
inTreeNode.Text = ... // here it is set
}
谢谢,很好用!我只是坚持使用您的解决方案,而不重新构造方法:-)