社区
C#
帖子详情
C# XmlDocument.Save()方法
GisXiaoluo
2012-03-27 11:30:59
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误,
怎么样才能避免呢?是不是要用到多线程?
...全文
1035
8
打赏
收藏
C# XmlDocument.Save()方法
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误, 怎么样才能避免呢?是不是要用到多线程?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孟子E章
2012-03-27
打赏
举报
回复
读和写,Load一次就可以了。XmlDocument是内存中的对象,直接可以使用
liuxin0121
2012-03-27
打赏
举报
回复
XmlDocument.Load(string)是托管方法,本身是不需要释放的安全方法,但是由于你多线程可能同时对文件本身访问,所以要加上一些处理
在你document处理完了之后,释放掉资源就可以了
[code=c#]
document.RemoveAll();
document = null;
[/code]
GisXiaoluo
2012-03-27
打赏
举报
回复
不是代码的问题 如果我不先读的话,直接去添加节点,document.save()方法就没问题,
GisXiaoluo
2012-03-27
打赏
举报
回复
好的
public int ComputeTimeSpan()
{
XmlDocument document = new XmlDocument();
XmlReaderSettings readingSettings = new XmlReaderSettings();
readingSettings.IgnoreComments = true;
XmlReader xmlReader = XmlReader.Create(fileName, readingSettings);
document.Load(xmlReader);
XmlNodeList nodeList = document.SelectSingleNo("LastCopyTime").ChildNodes;
if (nodeList.Count == 0)
return miniute;
string lastDate = nodeList[0].InnerText;
DateTime oldDate = DateTime.Parse(lastDate);
DateTime nowDate = DateTime.Now;
TimeSpan span = nowDate - oldDate;
miniute = span.Minutes;
System.Runtime.InteropServices.Marshal.ReleaseComObject(document);
return miniute;
}
public void WriteCopyDate()
{
XmlDocument document = new XmlDocument();
document.Load(fileName);
XmlNode node = document.SelectSingleNode("LastCopyTime");
string date = DateTime.Now.ToString("f");
if (node.FirstChild != null)
{
node.RemoveChild(node.FirstChild);
}
XmlElement element = document.CreateElement("LastTime");
element.InnerText = date;
node.AppendChild(element);
document.Save(fileName);
}
liuxin0121
2012-03-27
打赏
举报
回复
把你这段读文档一直到save的代码发上来,我看看
GisXiaoluo
2012-03-27
打赏
举报
回复
但是该怎么释放呢,求指教
liuxin0121
2012-03-27
打赏
举报
回复
读完了数据没释放吧,应该是这个进程还在占用中,释放了就好了
GisXiaoluo
2012-03-27
打赏
举报
回复
找到原因了,
XmlReader xmlReader = XmlReader.Create(fileName, readingSettings);
document.Load(xmlReader);
完成后 应该调用 xmlReader.close()方法,就不会出现 问题了
谢谢大家
c#
用
xmlDocument
等操作XML文件
通过以上
方法
,
C#
的`
XmlDocument
`类提供了对XML文件的强大操作能力,使得处理XML数据变得简单而直观。然而,对于大型或频繁更新的XML文件,考虑使用更高效的
方法
,如`XDocument`(LINQ to XML)或者`XmlReader`/`Xml...
C#
操作XML文件完整源码(十分经典)
- 写入XML:使用`XmlNode.AppendChild()`、`XmlNode.RemoveChild()`等
方法
添加、删除节点,然后用`
XmlDocument
.Save()`保存更改。 4. **使用LINQ to XML操作XML**: - 创建XML:使用`XElement`和`XAttribute`类...
一个非常好用的 XML 文件生成类(
C#
)
5. **保存XML到文件**:生成的XML文档需要保存到文件,`XmlHelper`会有一个`SaveToFile(string filePath)`
方法
,内部调用了`XDocument.Save`或`
XmlDocument
.Save`。 6. **格式化XML输出**:为了提高可读性,XML文件...
c#
操作XML 读取、生成,WEBSERVICE接口
XmlDocument
xmlDoc = new
XmlDocument
(); xmlDoc.Load("path_to_your_xml_file.xml"); ``` 读取XML节点值,可以使用`SelectSingleNode`或`SelectNodes`
方法
,如: ```csharp XmlNode node = xmlDoc....
C#
xml读写操作,附带具体使用例子
总结来说,
C#
中的XML操作提供了多种方式来处理XML文件,包括使用
XmlDocument
、XmlNodeReader/XmlWriter以及LINQ to XML。这个名为“
C#
xml读写操作”的项目为这些操作提供了封装,便于开发者快速、方便地进行XML数据...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章