XML读写
实体类:
public class LogEntity
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string context;
public string Context
{
get { return context; }
set { context = value; }
}
private DateTime logTime;
public DateTime LogTime
{
get { return logTime; }
set { logTime = value; }
}
}
XMLFile1.xml
<?xml version="1.0" encoding="utf-8" ?>
<LogTable>
</LogTable>
XMLFile2.xml
Code
<?xml version="1.0" encoding="utf-8" ?>
<NowId>0</NowId>
DAL:
Code
public class LogDal
{
public static string GetAppPath()
{//此方法用反射获取当前应用程序路径
//System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]; :
获取当前执行的应用程序集
//System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName; 获取当前执行的应用程序集的完整路径
string exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
//exePath = "\\Program Files\\XXXXMLApp\\XXXXMLApp.exe"
string path = exePath.Replace(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].Name,"");
//exePath = "\\Program Files\\XXXXMLApp\\"
return path;
}
public List<LogEntity> select()
{
List<LogEntity> logs = new List<LogEntity>();
XmlDocument xdom = new XmlDocument();
xdom.Load(GetAppPath()+"XMLFile1.xml");
foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
{
LogEntity log = new LogEntity();
log.Context = logNode.ChildNodes[1].InnerText;
log.Id = int.Parse(logNode.ChildNodes[0].InnerText);
log.LogTime = DateTime.Parse(logNode.ChildNodes[2].InnerText);
logs.Add(log);
}
return logs;
}
public LogEntity selectById(LogEntity logentity1)
{
List<LogEntity> logs = new List<LogEntity>();
LogEntity logentity = logentity1;
XmlDocument xdom = new XmlDocument();
xdom.Load(GetAppPath() + "XMLFile1.xml");
foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
{
if (logNode.ChildNodes[0].InnerText == logentity.Id.ToString())
{
logentity.Context = logNode.ChildNodes[1].InnerText;
logentity.LogTime = DateTime.Parse(logNode.ChildNodes[2].InnerText);
break;
}
}
return logentity;
}
public void update(LogEntity log)
{
XmlDocument xdom = new XmlDocument();
xdom.Load(GetAppPath() + "XMLFile1.xml");
foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
{
if (int.Parse(logNode.ChildNodes[0].InnerText) == log.Id)
{
logNode.ChildNodes[1].InnerText = log.Context;
logNode.ChildNodes[2].InnerText = log.LogTime.ToString();
break;
}
}
xdom.Save(GetAppPath() + "XMLFile1.xml");
}
public void insert(LogEntity log)
{
List<LogEntity> logs = new List<LogEntity>();
XmlDocument xdom = new XmlDocument();
xdom.Load(GetAppPath() + "XMLFile2.xml");
int NowId = int.Parse(xdom.DocumentElement.InnerText)+1;
xdom.DocumentElement.InnerText = NowId.ToString();
xdom.Save(GetAppPath() + "XMLFile2.xml");
xdom = new XmlDocument();
xdom.Load(GetAppPath() + "XMLFile1.xml");
XmlNode NewLogNode = xdom.CreateElement("Log");
XmlNode IdNode = xdom.CreateElement("Id");
IdNode.InnerText = NowId.ToString();
XmlNode ContextNode = xdom.CreateElement("Context");
ContextNode.InnerText = log.Context;
XmlNode TimeNode = xdom.CreateElement("LogTime");
TimeNode.InnerText = log.LogTime.ToString();
NewLogNode.AppendChild(IdNode);
NewLogNode.AppendChild(ContextNode);
NewLogNode.AppendChild(TimeNode);
xdom.DocumentElement.AppendChild(NewLogNode);
xdom.Save(GetAppPath() + "XMLFile1.xml");
log.Id = NowId;
}
public void delete(LogEntity log)
{
List<LogEntity> logs = new List<LogEntity>();
XmlDocument xdom = new XmlDocument();
xdom.Load(GetAppPath() + "XMLFile1.xml");
foreach (XmlNode logNode in xdom.DocumentElement.ChildNodes)
{
if (logNode.ChildNodes[0].InnerText == log.Id.ToString())
{
xdom.DocumentElement.RemoveChild(logNode);
break;
}
}
xdom.Save(GetAppPath() + "XMLFile1.xml");
}
}
写入后的XML:
Code
<?xml version="1.0" encoding="utf-8" ?>
<LogTable>
<Log>
<Id>1</Id>
<Context>测试内容1</Context>
<LogTime>08-10-13 23:04:10</LogTime>
</Log>
<Log>
<Id>2</Id>
<Context>测试内容2</Context>
<LogTime>08-10-13 23:05:10</LogTime>
</Log>
<Log>
<Id>3</Id>
<Context>测试内容3</Context>
<LogTime>08-10-13 23:06:10</LogTime>
</Log>
</LogTable>

浙公网安备 33010602011771号