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>
posted @ 2008-10-14 10:09  宋永波  阅读(276)  评论(0)    收藏  举报