//----------------------------------------------------------------------- // <copyright company="" file="LoadXmlHelper.cs"> // Copyright (c) V1.0 // 作者:季健国 // 功能:加载XML // 历史版本:2013-11-26 新增 // </copyright> //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.IO; using System.Web; namespace Ant.Common { public class LoadXmlHelper { /// <summary> /// 获取数据 /// </summary> public static XmlDocument XmlLoading(string configpath) { XmlDocument xmlDoc = new XmlDocument(); try { if (!string.IsNullOrEmpty(configpath)) { xmlDoc.Load(configpath); } } catch (Exception ex) { // Log4NetHelper.WriteExceptionLog("加载URL文件失败", ex); } return xmlDoc; } /// <summary> /// 查找XML所在节点的值 /// 添加人:季健国 /// 添加时间:2013-12-03 /// </summary> /// <param name="xml"></param> /// <param name="index"></param> /// <returns></returns> public static object GetXmlValue(XmlDocument xml,string index) { object obj = null; if (!Equals(xml.SelectSingleNode(index).InnerText,null)) obj = xml.SelectSingleNode(index).InnerText; return obj; } } /// <summary> /// 数据库连接配置缓存文件对象 /// </summary> public class DataBaseXmlObject { /// <summary> /// 数据库连接配置缓存文件对象 /// </summary> public DataBaseXmlObject() { } /// <summary> /// 数据库连接配置缓存文件对象 /// </summary> /// <param name="dataBaseType">数据库类型</param> /// <param name="dataBaseAddress">地址</param> /// <param name="authentication">验证方式</param> /// <param name="account">账号</param> /// <param name="password">密码</param> public DataBaseXmlObject(int dataBaseType, string dataBaseAddress, int authentication, string account, string password) { this.DataBaseAccount = account; this.DataBasePassword = password; this.DataBaseType = dataBaseType; this.DataBaseAddress = dataBaseAddress; this.DataBaseAuthentication = authentication; this.LoginTime = DateTime.Now; } /// <summary> /// 数据库类型 /// </summary> public int DataBaseType { get; set; } /// <summary> /// 数据库地址 /// </summary> public string DataBaseAddress { get; set; } /// <summary> /// 验证方式 /// </summary> public int DataBaseAuthentication { get; set; } /// <summary> /// 账号 /// </summary> public string DataBaseAccount { get; set; } /// <summary> /// 密码 /// </summary> public string DataBasePassword { get; set; } /// <summary> /// 登陆时间 /// </summary> public DateTime LoginTime { get; set; } /// <summary> /// 获取配置文件信息 /// </summary> /// <param name="path">路径</param> /// <returns>返回集合</returns> public static Dictionary<string, DataBaseXmlObject> GetList(string path) { if (File.Exists(path)) { XmlDocument doc = new XmlDocument(); doc.LoadXml(ReaderFile(path).Trim()); Dictionary<string, DataBaseXmlObject> list = new Dictionary<string, DataBaseXmlObject>(); foreach (XmlNode databaseConfig in doc.DocumentElement.ChildNodes) { string address = StringEncrypt.DeCode(databaseConfig.Attributes["address"].Value); DataBaseXmlObject dataBase = new DataBaseXmlObject(); dataBase.DataBaseAccount = StringEncrypt.DeCode(databaseConfig.Attributes["account"].Value); dataBase.DataBasePassword = StringEncrypt.DeCode(databaseConfig.Attributes["password"].Value); dataBase.DataBaseAuthentication = int.Parse(StringEncrypt.DeCode(databaseConfig.Attributes["authentication"].Value)); dataBase.DataBaseType = int.Parse(StringEncrypt.DeCode(databaseConfig.Attributes["dataBaseType"].Value)); dataBase.DataBaseAddress = address; dataBase.LoginTime = DateTime.Parse(StringEncrypt.DeCode(databaseConfig.Attributes["login"].Value)); if (list.ContainsKey(address) == false) { list.Add(address, dataBase); } } return list; } return null; } /// <summary> /// 获取连接字符串 /// </summary> /// <param name="dataBase">数据库</param> public string GetConnectionString(string dataBase) { if (DataBaseAuthentication == 0) { return "Data Source=" + DataBaseAddress + ";Initial Catalog=" + dataBase + ";Integrated Security=True;"; } return "user id=" + DataBaseAccount + ";password=" + DataBasePassword + ";DataBase=" + dataBase + ";server=" + DataBaseAddress + ";"; } /// <summary> /// 读文件 /// </summary> /// <param name="path">路径</param> /// <returns>返回内容</returns> public static string ReaderFile(string path) { if (File.Exists(path)) { FileStream f = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader reader = new StreamReader(f, Encoding.UTF8); string content = reader.ReadToEnd(); reader.Close(); f.Close(); return content; } return string.Empty; } } }