PS: 由於小弟初學編程,本文只寫實現方式,代碼寫的不是很好請見諒!
1.需要讀取的xml文檔內容
2. 最終實現效果
3 貌似看起實現起來很復雜 但是想想還是挺簡單
思路: 讀取XML文檔 →獲取XML根元素→ 遞歸添加根元素的子元素(因為樹形的結構和XML很像)
具體看代碼
首先給加載button注冊方法
1 private void btn_LoadXml_Click(object sender, EventArgs e) 2 { 3 //讀取Xml文件 this.txt_XmlPath.Text是文件路徑 4 XDocument xmlfile = XDocument.Load(Path.GetFullPath(this.txt_XmlPath.Text.Trim())); 5 6 //取根元素 7 XElement rootElement = xmlfile.Root; 8 9 //給第TreeView 添加根節點 10 TreeNode node= this.treeView1.Nodes.Add(rootElement.Name.ToString()); 11 12 RecursionAddNode(node.Nodes, rootElement); 13 }
RecursionAddNode方法代碼 此方法主要實現遞歸添加到TreeView
private void RecursionAddNode(TreeNodeCollection nodes, XElement xElement) { //獲取嵌套的元素 IEnumerable<XElement> elements = xElement.Elements(); //遞歸添加 foreach (XElement element in elements) { TreeNode node = nodes.Add(element.Name.ToString()+":"+GetAttributes(element)); RecursionAddNode(node.Nodes, element); } }
//如果要獲取屬性 就要再添加一個方法GetAttributes(element)
private static string GetAttributes(XElement xElement) { IEnumerable<XAttribute> attributes = xElement.Attributes(); foreach (XAttribute attribute in attributes) { return attribute.Name + "=" + attribute.Value; } return null; }
備注:小弟才學讀取XML 但是看了下文檔 發現很多對象都能讀取 所以想問我用這個對象讀取過時了嗎?