1.按钮的点击事件其中有XDocument与XmlDocument
private void button1_Click(object sender, EventArgs e)
{
#region XDocument 将Xml递归加载到TreeView上
////1.读取Xml文件(XDocument)
////加载Xml文件
//XDocument xdoc = XDocument.Load(@"D:\TEST\NewPerson.xml");
////先获取根元素
//XElement rootEle = xdoc.Root;
////将根元素加载到TreeView的根节点上
//TreeNode rootnode = treeView1.Nodes.Add(rootEle.Name.ToString());
////递归加载根元素以下的子节点
//LoadXmlTreeView(rootEle, rootnode.Nodes);
#endregion
#region Xmldocument将xml递归加载到TreeView上
//1.加载文件到对象中
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(@"D:\TEST\NewPerson.xml");
//获取xml的根元素
XmlElement xmlrootele = xmldoc.DocumentElement;
TreeNode rootNode = treeView1.Nodes.Add(xmlrootele.Name);
LoadXmlToTreeView(xmlrootele, rootNode.Nodes);
#endregion
}
2.递归方法
private void LoadXmlToTreeView(XmlElement xmlrootele, TreeNodeCollection nodes)
{
//循环根元素的子元素
foreach (XmlNode item in xmlrootele.ChildNodes)
{
//需要判断当前节点是什么类型
if (item.NodeType == XmlNodeType.Element)
{
//如果是元素节点就加载到TreeView上
TreeNode node = nodes.Add(item.Name);
LoadXmlToTreeView((XmlElement)item, node.Nodes);
}
else if (item.NodeType == XmlNodeType.Text || item.NodeType == XmlNodeType.CDATA)
{
nodes.Add(item.InnerText);
}
}
}
//通过Xdocument的方式将xml递归加载到Treeview上
private void LoadXmlTreeView(XElement rootEle, TreeNodeCollection nodes)
{
//获取根元素的所有子元素
rootEle.Elements();
//遍历根元素所有的子元素
foreach (XElement item in rootEle.Elements())
{
if (item.Elements().Count() == 0)
{
nodes.Add(item.Name.ToString()).Nodes.Add(item.Value.ToString());
}
else
{
//当前子元素加载到TreeView的节点集合中
TreeNode node = nodes.Add(item.Name.ToString());
LoadXmlTreeView(item, node.Nodes);
}
}
}