using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Xml.Linq; namespace XMLDemo.Web.Component { public class XMLBll { #region 获取XML文件 /// <summary> /// 获取XML文件 /// </summary> /// <returns></returns> public static string getXMLFile() { return HttpContext.Current.Server.MapPath(@"XMLDataBase/Messages.xml"); } #endregion #region 查询XML文件 /// <summary> /// 获取所有的留言信息 /// </summary> /// <returns></returns> public static List<Message> getMessageListFromXML() { //加载XML文档 XDocument doc = XDocument.Load(getXMLFile()); //取出所有的XML节点信息 var items = doc.Descendants("item") .Select(p => new { ID = Convert.ToInt32(p.Element("ID").Value), Name = p.Element("Name").Value, Email = p.Element("Email").Value, Logo = p.Element("Logo").Value, Content = p.Element("Content").Value, AddTime = p.Element("AddTime").Value, IP = p.Element("IP").Value }); //实体类集合 List<Message> messages = new List<Message>(); //遍历集合 foreach (var item in items) { Message message = new Message(); message.ID = item.ID; message.Name = item.Name; message.Email = item.Email; message.Logo = item.Logo; message.Content = item.Content; message.AddTime = item.AddTime; message.IP = item.IP; messages.Add(message); } //返回实体类集合 return messages; } #endregion #region 增加XML节点信息 /// <summary> /// 往XML文件中插入一条XML节点 /// </summary> /// <param name="message"></param> public static void InsertMessageIntoXML(Message message) { //加载XML文档 XDocument doc = XDocument.Load(getXMLFile()); //创建XML节点信息 XElement elements = new XElement("item", new XElement("id", message.ID), new XElement("name", message.Name), new XElement("email", message.Email), new XElement("logo", message.Logo), new XElement("content", message.Content), new XElement("addtime", message.AddTime), new XElement("ip", HttpContext.Current.Request.UserHostAddress)); //添加到根节点中 doc.Root.AddFirst(elements); //保存信息 doc.Save(getXMLFile()); } #endregion #region 删除XML节点内容 /// <summary> /// 根据ID删除XML文档中对应节点的信息 /// </summary> /// <param name="id"></param> public static void deleteMessageFromXML(int id) { //加载XML文档 XDocument doc = XDocument.Load(getXMLFile()); //查询指定的message集合 var messages = from p in doc.Root.Elements("item") where p.Element("id").Value == id.ToString() select p; //删除指定的对象 messages.Remove(); //保存XML文件 doc.Save(getXMLFile()); } #endregion } }