110,538
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8" ?>
<inventory>
<info>
<id>1</id>
<cid>1</cid>
<name>a</name>
</info>
<info>
<id>2</id>
<cid>2</cid>
<name>b</name>
</info>
<info>
<id>3</id>
<cid>3</cid>
<name>c</name>
</info>
<info>
<id>4</id>
<cid>1</cid>
<name>d</name>
</info>
</inventory>
private void Form1_Load(object sender, EventArgs e)
{
System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load(Application.StartupPath + "\\XMLFile1.xml");
var els = doc.Root.Descendants("info").ToArray();
LoadTreeNode(els, treeView1.Nodes,""); //加载树节点
}
//递归加载树节点
private void LoadTreeNode(System.Xml.Linq.XElement[] els, TreeNodeCollection Nodes, string id)
{
if (id =="")
{
foreach (System.Xml.Linq.XElement es in els.Where(x => x.Element("id").Value.Equals(x.Element("cid").Value)))
{
TreeNode node = Nodes.Add(es.Element("name").Value);
node.Tag = es.Element("id").Value;
LoadTreeNode(els, node.Nodes, es.Element("id").Value);
}
}
else
{
foreach (System.Xml.Linq.XElement es in els.Where(x => x.Element("cid").Value.Equals(id) && !x.Element("id").Value.Equals(id)))
{
TreeNode node = Nodes.Add(es.Element("name").Value);
node.Tag = es.Element("id").Value;
LoadTreeNode(els, node.Nodes, es.Element("id").Value);
}
}
}