[C#]XML依名稱 取得 節點「 InnerText」 與「屬性值」
實作:
需求:取得下圖「節點b」的InnerText,「節點c」的InnerText與屬性(parameter)的value。
1.建立一個 XMLHelper
  public static class XMLHelper
    {   
        /// <summary>
        /// 載入XML檔案
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static XmlDocument Load(string fileName)
        {
            XmlDocument doc = new XmlDocument();
            if(!string.IsNullOrWhiteSpace(fileName))
            {
                doc.Load(fileName);
            }
            return doc;
        }
        /// <summary>
        /// 依名稱取得節點
        /// </summary>
        /// <param name="node"></param>
        /// <param name="tagName"></param>
        /// <returns></returns>
        public static XmlNode GetElementsByTagName(XmlNode node,string tagName)
        {
            if(node==null||string.IsNullOrWhiteSpace(tagName))
            {
                return null;
            }
            var childNodes = node.ChildNodes;
            for(var i=0;i< childNodes.Count;i++)
            {
                if (childNodes[i].Name == tagName)
                {
                    return childNodes[i];
                }
            }
            return null;
        }
        /// <summary>
        /// 依名稱取得屬性
        /// </summary>
        /// <param name="collection"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static XmlAttribute GetXmlAttributeByName(XmlAttributeCollection collection, string name)
        {
            if (collection == null || string.IsNullOrWhiteSpace(name))
            {
                return null;
            }
            for (var i = 0; i < collection.Count; i++)
            {
                if (collection[i].Name == name)
                {
                    return collection[i];
                }
            }
            return null;
        }
    }
留言
張貼留言