【发布时间】:2017-01-06 08:43:57
【问题描述】:
我想根据从已解析的 xml 文档中获得的信息显示树视图结构。它必须只显示“ItemName”,并且根据节点的“级别”,它假设级别 1 是父节点,级别 2 是子节点,级别 3 是子节点的子节点(叶子)。
当我想添加子节点或遍历 xml 节点时出现错误,它只保存最后一个节点和子节点。
这是我到目前为止所做的
请注意,这必须显示在窗体结构视图中
private void TreeNodeStrcutureManually(XmlDocument structure)
{
treeView1.Nodes.Clear();
XmlElement root = structure.DocumentElement;
XmlNodeList itemName = root.GetElementsByTagName("ItemName");
XmlNodeList level = root.GetElementsByTagName("Level");
string parent = "";
string childNode1 = "";
string childNode2 = "";
{
for (int i = 0; i < itemName.Count; i++)
{
TreeNode tNode;
if (level.Item(i).InnerText == "1")
{
parent = itemName.Item(i).InnerText;
tNode = treeView1.Nodes.Add(parent);
}
if (level.Item(i).InnerText == "2")
{
childNode1 = itemName.Item(i).InnerText;
tNode.Nodes.Add(childNode1);
}
if (level.Item(1).InnerText == "3")
{
childNode2 = itemName.Item(i).InnerText;
tNode.Nodes.Add(childNode2);
}
}
}
这里是一个如何返回 xml 的示例:
<HR>
<ItemName> Addidas</ItemName>
<level> 1 </level>
</HR>
<HR>
<ItemName> Shoe </ItemName>
<level> 2 </level>
</HR>
<HR>
<ItemName> Tshirt </ItemName>
<level> 2 </level>
</HR>
<HR>
<ItemName> shoelace </ItemName>
<level> 2 </level>
</HR>
<HR>
<ItemName> Running </ItemName>
<level> 3 </level>
</HR>
<HR>
<ItemName> Nike </ItemName>
<level> 1 </level>
</HR>
【问题讨论】:
-
您遇到了什么异常?
-
tNode.Nodes.Add(childNode1) 在“使用未分配的局部变量 tNode”这一行给出错误
-
OK...tNode 必须有一个实例:TreeNode tNode = new TreeNode();
-
谢谢,带走了异常,但还是只添加父节点,不添加其余子节点
-
请看下面我的回答