C# 获取XML中所有节点值
C# 获取XML中所有节点值
考虑写一些操作XML的公共方法生成dll,以备以后经常使用,今天先实现了获取XML中所有节点值。
参考资料: shmiloy001的博客 : http://blog.csdn.net/shmiloy001/article/details/6637686
稍作修改,可以作为dll引用,代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.IO; namespace XmlOperation { /// <summary> /// 获取指定路径下XML的所有节点值 /// </summary> public class Getxml { public List<string> getxml(string xmlFilePath, List<string> list) { try { XmlDocument doc = new XmlDocument(); if (File.Exists(xmlFilePath)) { doc.Load(xmlFilePath); XmlNodeList xnl = doc.DocumentElement.ChildNodes; GetAllNodes(xnl, list); } else { list.Add("Error:"); list.Add("Please make sure the path and file are correct!!"); } return list; } catch (Exception e) { throw e; } } /// <summary> /// 递归遍历所有节点 /// </summary> /// <param name="nodelist"></param> /// <param name="listnode"></param> /// <returns></returns> public List<string> GetAllNodes(XmlNodeList nodelist, List<string> listnode) { foreach (XmlElement element in nodelist) { //如果这个节点没有出现过,则添加到list列表 if (!listnode.Contains(element.Name)) { listnode.Add(element.Name); } if (element.ChildNodes[0] is XmlText) { continue; } else { GetAllNodes(element.ChildNodes, listnode); } } return listnode; } } }