社区
C#
帖子详情
C# XmlDocument.Save()方法
GisXiaoluo
2012-03-27 11:30:59
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误,
怎么样才能避免呢?是不是要用到多线程?
...全文
1084
8
打赏
收藏
C# XmlDocument.Save()方法
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误, 怎么样才能避免呢?是不是要用到多线程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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#
XML
XmlDocument
本文介绍了
C#
中操作XML文件的几种
方法
:1. 使用
XmlDocument
类创建XML文件,通过创建节点和设置属性构建XML结构;2. 使用XmlTextWriter类以流式方式生成XML文件;3. 向现有XML文件添加新节点;4. 修改XML文件中的指定节点内容;5. 读取XML文件内容。每种
方法
都提供了示例代码,包括节点创建、属性设置、内容修改和文件保存等操作,展示了.NET框架下处理XML文档的基本技术。
C#
中
XmlDocument
读取和创建 XML 文档
系列文章目录
C#
处理XML 数据的技术
方法
总结
XmlDocument
读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非缓存的只进 XML 数据访问方式 LINQ to XML用于访问 XML 数据 XPathNavigator类对
XmlDocument
和XPathDocument中的 XML 提供多个编辑选项和导航功能 XslCompiledTransform类为使用 XSL 转换进行 XML 数...
C#
XML文件的一些操作(
XmlDocument
、XmlElement、XmlNode)
C#
操作xml主要有这么几个对象:
XmlDocument
、XmlElement、XmlNode 命名空间: using System.Xml; 知识补充: XmlNode和XmlElement的区别: 1、Element是一个小范围的定义,必须含有完整信息的节点才能叫做元素。 2、Node是基本对象,Attribute、Element、Text等都是Node的子对象。 一个元素一定是
用
XmlDocument
类修改和保存 XML
用
XmlDocument
类修改和保存 XML概要此示例演示如何使用
XmlDocument
类更新和保存 XML。 要求 下表概括了推荐使用的硬件、软件、网络架构以及所需的 Service Pack: Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 或
C#
如何将两个
XmlDocument
合并为一个
XmlDocument
XmlDocument
xd = new
XmlDocument
(); //添加顶级结点(如果不添加一个节点的话,无法使用xd.DocumentElement.AppendChild,会报出:未将对象引用设置到对象的实例的错误) XmlElement xe = xd.CreateElement("
XmlDocument
Test"); xd.AppendChild(xe); //第一个Xml
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章