XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("G:\\Test.xml");//装载XML文档
TreeNode rootnode = new TreeNode("cross工程");
Model.TreeTableNodeClass temp = new Model.TreeTableNodeClass();
temp.id = 0;
temp.pid = 0;
temp.name = "cross工程";
rootnode.Tag = temp;
treeView1.Nodes.Add(rootnode);
XmlNode xmlNode = xmldoc.SelectSingleNode(temp.name);
//构建TreeView的层次结构
CreateTvBulidingLevel(temp.name, rootnode, xmlNode);
/// <summary>
/// 通过递归 构建TreeView的层次结构树
/// </summary>
/// <param name="pid">父节点ID</param>
/// <param name="tn">要插入为哪个TreeView节点子节点</param>
private void CreateTvBulidingLevel(string NodeName, TreeNode tn,XmlNode xmlNode)
{
XmlNode xmlnode;
XmlElement xmlelem;
string s = "//" + NodeName;
xmlnode = xmlNode.SelectSingleNode(s);
foreach (XmlNode xmlnod in xmlnode)
{
xmlelem = (XmlElement)xmlnod;
Model.TreeTableNodeClass temp = new Model.TreeTableNodeClass();
temp.id = Convert.ToInt32(xmlelem.GetAttribute("id").ToString());
temp.pid = Convert.ToInt32(xmlelem.GetAttribute("pid").ToString());
temp.name = xmlelem.GetAttribute("nodeName").ToString(); ;
temp.typeId = Convert.ToInt32(xmlelem.GetAttribute("typeId").ToString());
TreeNode childTreeNode = new TreeNode(temp.name);
childTreeNode.Tag = temp;
tn.Nodes.Add(childTreeNode);
s = NodeName + "//" + temp.name;
CreateTvBulidingLevel(s, childTreeNode,xmlnod);
}
}