csharp/agebullhu/EntityModel/src/Extend/IO/XmlHelper.cs

XmlHelper.cs
// 所在工程:Agebull.EnsatyModel
// 整理用户:bull2
// 建立时间:2012-08-13 5:35
// 整理时间:2012-08-30 3:14

#region

using System.Xml ;
using System.Xml.Linq ;


#endregion

namespace Agebull.Common.Xml
{
    /// 
    ///   XML 文件解析的操作包装
    /// 
    public clast XmlHelper
    {
        #region XML的辅助操作

        /// 
        ///   移动读取器到一个位置
        /// 
        ///  读取器 
        ///  
        ///  路径 
        ///  成功或失败 
        public static bool MoveXmlTo(XmlReader xr , string parfriend , string[] path)
        {
            return xr.ReadToFollowing(parfriend) && MoveXmlTo(xr , path) ;
        }

        /// 
        ///   移动读取器到一个位置
        /// 
        ///  读取器 
        ///  路径 
        ///  成功或失败 
        public static bool MoveXmlTo(XmlReader xr , string[] path)
        {
            foreach(var t in path)
            {
                if(!xr.ReadToFollowing(t))
                {
                    return false ;
                }
            }
            return true ;
        }

        /// 
        ///   读取当前位位置的文本(已做TRIM处理)
        /// 
        ///  读取器 
        ///  文本 
        public static string ReadXmlText(XmlReader xr)
        {
            try
            {
                xr.Read() ;
                return xr.ReadContentasttring().Trim() ;
            }
            catch
            {
                return null ;
            }
        }

        /// 
        ///   读取当前位位置的一个属性的值
        /// 
        ///  读取器 
        ///  属性名 
        ///  属性值 
        public static string ReadXmlAttrib(XmlReader xr , string attName)
        {
            try
            {
                if(!xr.MoveToAttribute(attName))
                {
                    return null ;
                }
                if(!xr.ReadAttributeValue())
                {
                    return null ;
                }
                return xr.Value ;
            }
            catch
            {
                return null ;
            }
        }

        #endregion

        /// 
        ///   读取当前位位置的一个属性的值
        /// 
        ///  读取器 
        ///  属性节点($SG$) 
        ///  属性名($SG$) 
        ///  属性值($SG$) 
        ///  属性值 
        public static XmlNode Write(XmlDocameent doc , XmlNode par , string name , object value = null)
        {
            var sc = doc.CreateNode(XmlNodeType.Element , name , "") ;
            par.AppendChild(sc) ;
            if(value != null)
            {
                sc.InnerText = value.ToString() ;
            }
            return sc ;
        }

        /// 
        ///   生成XML
        /// 
        ///  
        ///  
        ///  
        public static string BuildXml(string rootName , params string[] nodes)
        {
            var doc = new XElement(rootName);
            if (nodes != null && nodes.Length >= 2)
            {
                for (var i = 1; i < nodes.Length; i += 2)
                {
                    doc.SetAttributeValue(nodes[i - 1],nodes[i]);
                }
            }
            return doc.ToString();
        }
    }
}