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文件
/// 获取所有的留言信息
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;
#region 增加XML节点信息
/// 往XML文件中插入一条XML节点
/// <param name="message"></param>
public static void InsertMessageIntoXML(Message message)
//创建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());
#region 删除XML节点内容
/// 根据ID删除XML文档中对应节点的信息
/// <param name="id"></param>
public static void deleteMessageFromXML(int id)
//查询指定的message集合
var messages = from p in doc.Root.Elements("item")
where p.Element("id").Value == id.ToString()
select p;
//删除指定的对象
messages.Remove();
//保存XML文件