using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Web;<br />using System.Xml.Linq;<br />namespace XMLDemo.Web.Component<br />{<br /> public class XMLBll<br /> {<br /> #region 擷取XML檔案<br /> /// <summary><br /> /// 擷取XML檔案<br /> /// </summary><br /> /// <returns></returns><br /> public static string getXMLFile()<br /> {<br /> return HttpContext.Current.Server.MapPath(@"XMLDataBase/Messages.xml");<br /> }<br /> #endregion<br /> #region 查詢XML檔案<br /> /// <summary><br /> /// 擷取所有的留言資訊<br /> /// </summary><br /> /// <returns></returns><br /> public static List<Message> getMessageListFromXML()<br /> {<br /> //載入XML文檔<br /> XDocument doc = XDocument.Load(getXMLFile());<br /> //取出所有的XML節點資訊<br /> var items = doc.Descendants("item")<br /> .Select(p => new<br /> {<br /> ID = Convert.ToInt32(p.Element("ID").Value),<br /> Name = p.Element("Name").Value,<br /> Email = p.Element("Email").Value,<br /> Logo = p.Element("Logo").Value,<br /> Content = p.Element("Content").Value,<br /> AddTime = p.Element("AddTime").Value,<br /> IP = p.Element("IP").Value<br /> });<br /> //實體類集合<br /> List<Message> messages = new List<Message>();<br /> //遍曆集合<br /> foreach (var item in items)<br /> {<br /> Message message = new Message();<br /> message.ID = item.ID;<br /> message.Name = item.Name;<br /> message.Email = item.Email;<br /> message.Logo = item.Logo;<br /> message.Content = item.Content;<br /> message.AddTime = item.AddTime;<br /> message.IP = item.IP;<br /> messages.Add(message);<br /> }<br /> //返回實體類集合<br /> return messages;<br /> }<br /> #endregion<br /> #region 增加XML節點資訊<br /> /// <summary><br /> /// 往XML檔案中插入一條XML節點<br /> /// </summary><br /> /// <param name="message"></param><br /> public static void InsertMessageIntoXML(Message message)<br /> {<br /> //載入XML文檔<br /> XDocument doc = XDocument.Load(getXMLFile());<br /> //建立XML節點資訊<br /> XElement elements = new XElement("item",<br /> new XElement("id", message.ID),<br /> new XElement("name", message.Name),<br /> new XElement("email", message.Email),<br /> new XElement("logo", message.Logo),<br /> new XElement("content", message.Content),<br /> new XElement("addtime", message.AddTime),<br /> new XElement("ip", HttpContext.Current.Request.UserHostAddress));<br /> //添加到根節點中<br /> doc.Root.AddFirst(elements);<br /> //儲存資訊<br /> doc.Save(getXMLFile());<br /> }<br /> #endregion<br /> #region 刪除XML節點內容<br /> /// <summary><br /> /// 根據ID刪除XML文檔中對應節點的資訊<br /> /// </summary><br /> /// <param name="id"></param><br /> public static void deleteMessageFromXML(int id)<br /> {<br /> //載入XML文檔<br /> XDocument doc = XDocument.Load(getXMLFile());<br /> //查詢指定的message集合<br /> var messages = from p in doc.Root.Elements("item")<br /> where p.Element("id").Value == id.ToString()<br /> select p;<br /> //刪除指定的對象<br /> messages.Remove();<br /> //儲存XML檔案<br /> doc.Save(getXMLFile());<br /> }<br /> #endregion<br /> }<br />}