将Xml文件递归加载到TreeView中
#region 【通过XDocument的方式将Xml文件递归到TreeView控件中】
//读取Xml文件(XDocument)
//1.加载Xml文件
XDocument document=XDoument.Load(“文件名称.xml”);
//2.先获取跟节点
XElement rootElement=doucment.Root;
//3.将Xml文件加载到TreeView的根节点上
TreeNode rootNode=treeView1.Nodes.Add(rootElement.Name.ToString());
//通过调用LoadXmlElement() 方法递归加载
LoadXmlTreeView(rootElement,rootNode.Nodes);
#endregion
//通过XDocument的方式将xml元素递归加载到TreeView上
private void LoadXmlTreeView(XElement rootElement,TreeNodeCollection treeNodeCollection)
{
//获取根元素rootElement 下的所有子元素
//rootElement.Elements()
//遍历rootElement下的所有子元素(直接元素)
foreach(XElement item in rootElement.Elements())
{
if(item.Elements().Count()==0)
{
treeNodeCollection.Add(item.Name.ToString()).Nodes.Add(item.Value);
}else
{
//将当前元素加载到TreeView的节点集合中
TreeNode node=treeNodeCollection.Add(item.Name.ToString());
LoadXmlTreeView(item,node.Nodes);
}
}
}
#region 【通过XmlDocument的方式将Xml文件递归到TreeView控件中】
//1.加载xml文件到XMLDocument对象
XMLDocument xmldocument= new XmlDocument();
//将xml加载到XMLDocument对象上
xmldocument.Load(“文件名称.xml”);
//得到xml的根节点(根元素)
XMLElement xmlElement= document.DocumentElement;
//先把xml的跟元素加载到TreeView中
TreeNode treenode= treeView1.Nodes.Add(xmlElement.Name);
//实现递归方法将Xml文件加载到TreeView中
LoadToTreeXMLDocument(xmlElement,treenode.Nodes);
#endregion
private void LoadToTreeXMLDocument(XmlElement xmlElement , TreeNodeCollection treeNodeCollection)
{
//喜欢xmlElent下所有子元素加载到treeNodeCollection集合中
foreach(XmlNode item in xmlElement.ChilNode)
{
//在此之前要判断一下当前节点是什么类型的节点
if(item.NodeType==XmlNodeType.Elment)
{
//如果当前节点是一个“元素”节点,则把当前节点加载到TreeView中
TreeNode node = treeNodeCollection.Add(item.Name);
//递归调用
LoadToTreeViewXmlDocument((XmlElement)item,node.Nodes);
}
else if (item.NodeType==XmlNodeType.Text|item.NodeType==XmlNodeType.CDATA)
{
treeNodeCollection.Add(item.InnerText);
}
}
}