一个简单的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文件
        /// <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
    }
}

本文来自taomanman的博客,原文地址:http://blog.csdn.net/taomanman/archive/2011/05/02/6384225.aspx


分享给朋友:
您可能感兴趣的文章:
随机阅读: