求问几个关于XML文件的问题:
在我的程序中,需要读取和存储XML文件,遇到了如下问题,请大家看看!
1、在程序初始化的时侯,我用如下代码创建文件:
LogFilePath="log_200212.xml"; //文件名以今天日期命名
if(!File.Exists(LogFilePath))
File.Create(LogFilePath);
logwt=new XmlTextWriter(LogFilePath,null);
//问题在这里了:当发觉今天没有日志文件时,创建文件,但是一旦创建了文件,这一行,就出现异常,告诉我另一个进程正在处理文件,而无法使用。
2、当同一天内第二次启动程序时(写同一个日志文件),如何向xml文件中增加一个节点,不删除原来的。我现在的情况时第二次运行时又把那个xml文件变成0字节了。
3、由于整个程序在运行时都会写日志文件,但是,又要同时查看这个日志文件(查看时依然用xmltextreader来读取),又会出现同样问题,就是无法读取这个文件,因为另一进程在使用。
4、如何在写xml时,指定encoding为"gb2312"?
问题点数:50、回复次数:7Top
1 楼GiantHard(展翅)回复于 2003-01-02 11:39:49 得分 15
if(!File.Exists(LogFilePath))
{
StreamWriter objSW = new StreamWriter(LogFilePath);
objSW.Write(strSetting);
objSW.Close();
}Top
2 楼JeffCls(痛苦的人)回复于 2003-01-02 12:52:09 得分 0
谢谢GiantHard(超级老虎邹) 第一个问题已解决了,你就等着领分吧!
请大家再帮我看看其它问题Top
3 楼songhuashao(不愿放手)回复于 2003-01-02 13:34:38 得分 5
第四个问题!在XML文件开头的地方可以写上<?xml version="1.0" encoding="GB2312"?>Top
4 楼songhuashao(不愿放手)回复于 2003-01-02 13:36:57 得分 20
你可以利用DOM,先把原来的XML解析,然后做遍历,找你你要插入的位置,再插入!Top
5 楼qqchen79(知秋一叶)回复于 2003-01-03 07:10:20 得分 5
songhuashao(不愿放手) 的说法没错。
你不能直接在Xml文件的尾部添加数据,因为Xml要求一个顶部的root element,简单的追加无法生成合法的xml文件。Top
6 楼qqchen79(知秋一叶)回复于 2003-01-03 07:12:37 得分 5
程序运行期间只是在内存中的Xml Dom上添加,在特定的时候写回到文件,写完后立即Close文件。读的时候不需要打开文件,使用内存中的影像就行了。Top
7 楼JeffCls(痛苦的人)回复于 2003-01-03 13:13:49 得分 0
首先感谢各位的帮助,现在问题已经解决了,谢谢songhuashao(不愿放手)给我的启示,现在我的确用的是XmlDocument来解决问题。各位等着领分吧!Top




