XmlReader打开xml文件
本文关键字:文件 xml 打开 XmlReader | 更新日期: 2023-09-27 18:07:57
我有一个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不是,结束应该关闭一个<Paths>
元素而不是<Path>
<Paths>
<Path>
<!-- Other stuff be here -->
</Path>
</Paths>
还要确保该文件确实没有在另一个进程中使用。您可以使用进程资源管理器工具来查找。(http://windowsxp.mvps.org/processlock.htm)
结果XML:
<Paths>
<Path>
<!-- Other stuff be here -->
</Path>
<Path xmlns="Test" />
</Paths>