我有一个看起来有点像这样的XML文件:XmlReader让xml文件打开?
<Paths>
<Path>
<Other stuff be here/>
</Path>
</Paths>
我想以编程方式添加一个新的“路径”节点在当前操作后,仍然是“路径”节点中。这里就是我想:
XmlDocument xmlDoc = new XmlDocument();
string xmlFilePath = "ThatFileFromAbove.xml";
using (XmlReader reader = XmlReader.Create(xmlFilePath))
xmlDoc.Load(reader);
XmlNode newPathNode = xmlDoc.CreateNode(XmlNodeType.Element, "Path", "Test");
xmlDoc.GetElementsByTagName("Paths")[0]
.InsertAfter(newPathNode, xmlDoc.GetElementsByTagName("Paths")[0].LastChild);
xmlDoc.Save(xmlFilePath);
我最终得到一个例外:“因为它正由另一个进程的进程无法访问文件”
这发生在xmlDoc.Save
行上。显然,读者仍然是开放的,我不知道如何在保存之前关闭读者。
你肯定*不*通过一些其他进程打开 - 创建它例如一个?修复您的XML并用记事本保存后,我无法重现您的错误。请注意,如果文件被锁定以供其他进程写入,它可能仍然可以打开以供阅读。 – dbc