XML读写

 实体类:

  1. public class LogEntity
  2. {
  3.     private int id;
  4.     public int Id
  5.     {
  6.         get { return id; }
  7.         set { id = value; }
  8.     }
  9.     private string context;
  10.     public string Context
  11.     {
  12.         get { return context; }
  13.         set { context = value; }
  14.     }
  15.     private DateTime logTime;
  16.     public DateTime LogTime
  17.     {
  18.         get { return logTime; }
  19.         set { logTime = value; }
  20.     }
  21. }

XMLFile1.xml

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <LogTable></LogTable>

XMLFile2.xml

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <NowId>0</NowId>
DAL:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Xml;
  5. using System.IO;
  6. namespace XXXXMLApp
  7. {
  8.     public class LogDal
  9.     {
  10.         public static string GetAppPath()
  11.         {//此方法用反射获取当前应用程序路径
  12.             //System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]; : 获取当前执行的应用程序集
  13.             //System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName; 获取当前执行的应用程序集的完整路径
  14.             string exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
  15.             //exePath = "//Program Files//XXXXMLApp//XXXXMLApp.exe"
  16.             string path = exePath.Replace(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].Name,"");
  17.             //exePath = "//Program Files//XXXXMLApp//"
  18.             return path;
  19.         }
  20.         public List<LogEntity> select()
  21.         {
  22.             List<LogEntity> logs = new List<LogEntity>();
  23.             XmlDocument xdom = new XmlDocument();
  24.             xdom.Load(GetAppPath()+"XMLFile1.xml");
  25.             foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
  26.             {
  27.                 LogEntity log = new LogEntity();
  28.                 log.Context = logNode.ChildNodes[1].InnerText;
  29.                 log.Id = int.Parse(logNode.ChildNodes[0].InnerText);
  30.                 log.LogTime = DateTime.Parse(logNode.ChildNodes[2].InnerText);
  31.                 logs.Add(log);
  32.             }
  33.             return logs;
  34.         }
  35.         public LogEntity selectById(LogEntity logentity1)
  36.         {
  37.             List<LogEntity> logs = new List<LogEntity>();
  38.             LogEntity logentity = logentity1;
  39.             XmlDocument xdom = new XmlDocument();
  40.             xdom.Load(GetAppPath() + "XMLFile1.xml");
  41.             foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
  42.             {
  43.                 if (logNode.ChildNodes[0].InnerText == logentity.Id.ToString())
  44.                 {
  45.                     logentity.Context = logNode.ChildNodes[1].InnerText;
  46.                     logentity.LogTime = DateTime.Parse(logNode.ChildNodes[2].InnerText);
  47.                     break;
  48.                 }
  49.             }
  50.             return logentity;
  51.         }
  52.         
  53.         public void update(LogEntity log)
  54.         {
  55.             XmlDocument xdom = new XmlDocument();
  56.             xdom.Load(GetAppPath() + "XMLFile1.xml");
  57.             foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
  58.             {
  59.                 if (int.Parse(logNode.ChildNodes[0].InnerText) == log.Id)
  60.                 {
  61.                     logNode.ChildNodes[1].InnerText = log.Context;
  62.                     logNode.ChildNodes[2].InnerText = log.LogTime.ToString();
  63.                     break;
  64.                 }
  65.             }
  66.             xdom.Save(GetAppPath() + "XMLFile1.xml");
  67.         }
  68.         public void insert(LogEntity log)
  69.         {
  70.             
  71.             List<LogEntity> logs = new List<LogEntity>();
  72.             XmlDocument xdom = new XmlDocument();
  73.             xdom.Load(GetAppPath() + "XMLFile2.xml");
  74.             int NowId = int.Parse(xdom.DocumentElement.InnerText)+1;
  75.             xdom.DocumentElement.InnerText = NowId.ToString();
  76.             xdom.Save(GetAppPath() + "XMLFile2.xml");
  77.             xdom = new XmlDocument();
  78.             xdom.Load(GetAppPath() + "XMLFile1.xml");
  79.             XmlNode NewLogNode = xdom.CreateElement("Log");
  80.             XmlNode IdNode = xdom.CreateElement("Id");
  81.             IdNode.InnerText = NowId.ToString();
  82.             XmlNode ContextNode = xdom.CreateElement("Context");
  83.             ContextNode.InnerText = log.Context;
  84.             XmlNode TimeNode = xdom.CreateElement("LogTime");
  85.             TimeNode.InnerText = log.LogTime.ToString();
  86.             NewLogNode.AppendChild(IdNode);
  87.             NewLogNode.AppendChild(ContextNode);
  88.             NewLogNode.AppendChild(TimeNode);
  89.             xdom.DocumentElement.AppendChild(NewLogNode);
  90.             xdom.Save(GetAppPath() + "XMLFile1.xml");
  91.             log.Id = NowId;
  92.         }
  93.         public void delete(LogEntity log)
  94.         {
  95.             List<LogEntity> logs = new List<LogEntity>();
  96.             XmlDocument xdom = new XmlDocument();
  97.             xdom.Load(GetAppPath() + "XMLFile1.xml");
  98.             foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
  99.             {
  100.                 if (logNode.ChildNodes[0].InnerText == log.Id.ToString())
  101.                 {
  102.                     xdom.DocumentElement.RemoveChild(logNode);
  103.                     break;
  104.                 }
  105.             }
  106.             xdom.Save(GetAppPath() + "XMLFile1.xml");
  107.         }
  108.     }
  109. }

写入后的XML:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <LogTable>
  3.   <Log>
  4.     <Id>1</Id>
  5.     <Context>测试内容1</Context>
  6.     <LogTime>08-10-13 23:04:10</LogTime>
  7.   </Log>
  8.   <Log>
  9.     <Id>2</Id>
  10.     <Context>测试内容2</Context>
  11.     <LogTime>08-10-13 23:05:10</LogTime>
  12.   </Log>
  13.   <Log>
  14.     <Id>3</Id>
  15.     <Context>测试内容3</Context>
  16.     <LogTime>08-10-13 23:06:10</LogTime>
  17.   </Log>
  18. </LogTable>

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值