天天看点

一个简单的XML操作类

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文件