您的位置:首页 > 其它

treeView绑定XML文档

2007-09-03 12:12 435 查看
在家这两天,共装了两遍系统<?xml version="1.0" encoding="utf-8" ?>

<!-- 注意:treeview 为根结点,nodes 为父级节点,node 为子节点。

-->

<treeview>

<nodes>

<name>根节点1</name>

<zuozhe />

<liupai />

<link />

<node>

<name>测试节点1 -1</name>

<zuozhe />

<liupai />

</node>

<node>

<name>测试节点1 -2</name>

<zuozhe />

<liupai />

<link />

</node>

</nodes>

在页面中加一个TreeView控件和一个button控件。写一个递归过程如下:

/// <summary>

/// 构建树。遍历XML所有的节点

/// </summary>

/// <param name="XMLNodes">XML节点</param>

/// <param name="TreeNode">树的当前节点</param>

private void BuildTree(XmlNodeList XMLNodes, TreeNodeCollection treeNodes)

{

string sValue;

for (int i = 0; i < XMLNodes.Count; i++)

{

if (XMLNodes[i].NodeType == XmlNodeType.Element)

{

TreeNode tNode = new TreeNode();

sValue = "";

if (XMLNodes[i].HasChildNodes && XMLNodes[i].ChildNodes.Count == 1 && XMLNodes[i].ChildNodes[0].NodeType == XmlNodeType.Text)

{

sValue = XMLNodes[i].ChildNodes[0].Value;

}

else

{

for (int j = 0; j < XMLNodes[i].Attributes.Count; j++)

{

sValue += XMLNodes[i].Attributes[j].Name + "=" + XMLNodes[i].Attributes[j].Value + ";";

}

}

if (sValue == "")

{

tNode.Text = XMLNodes[i].Name;

}

else

{

tNode.Text = XMLNodes[i].Name + ":" + sValue;

}

treeNodes.Add(tNode);

if(XMLNodes[i].HasChildNodes)

{

BuildTree(XMLNodes[i].ChildNodes, tNode.Nodes);

}

}

双击button,加入以下代码:

private void button1_Click(object sender, EventArgs e)

{

XmlDocument doc=new XmlDocument();

doc.Load(@"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\XMLFile1.xml");

BuildTree(doc.ChildNodes, treeView1.Nodes); ||调用递归

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: