gpt4 book ai didi

c# - 在 C# 中读取和写入 XML 文件的值

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:32 33 4
gpt4 key购买 nike

我想在做一些修改后从 XML 文件中读取值,我想将它写入同一个文件。
注意:- 它不应该从 XML 中读取注释值

Web.config:-

<add key="InputDataFileName" value="InputData.xml" /> 


这是我的代码,

string inputxmlPath = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["InputDataFileName"];
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
XmlReader reader = XmlReader.Create(inputxmlPath, readerSettings);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
var ParentNode = doc.SelectSingleNode("//TestData"); //This is the root Node
if (ParentNode.ChildNodes.Count > 0)
{
foreach (XmlNode child in ParentNode)
{
string elementName = child.LocalName;
switch (elementName)
{
case "URL":
for (int i = 0; i < child.ChildNodes.Count; i++)
{
XmlNode node = child.ChildNodes[i].FirstChild;
node.InnerText = CMEURL;
}
break;
case "LoadBalanceList":
for (int i = 0; i < child.ChildNodes.Count; i++)
{
XmlNode node = child.ChildNodes[i].FirstChild;
node.InnerText = CMEURL;
}
break;
case "Activity":
for (int i = 0; i < child.ChildNodes.Count; i++)
{
XmlNode node = child.ChildNodes[i].FirstChild;
node.InnerText = CMEURL;
}
break;

default:
break;
}
}
}

doc.Save(inputxmlPath); //Getting an exception here

异常:用户代码未处理 IOException该进程无法访问文件“C:\Users\Desktop\Patching\source\Automation\InputData.xml”,因为它正被另一个进程使用。

Save方法中获取异常
不确定我做错了什么,谁能帮助我
提前致谢

最佳答案

您永远不会关闭 XmlReader,因此它仍然有一个打开的文件句柄用于读取 - 这意味着您不能写入同一个文件。你应该把它放在 using 语句中:

var doc = new XmlDocument();
var settings = new XmlReaderSettings { IgnoreComments = true };
using (var reader = XmlReader.Create(inputXmlPath, settings))
{
doc.Load(reader);
}

不过,我个人会使用 XDocument 而不是 XmlDocument:

XDocument doc;
var settings = new XmlReaderSettings { IgnoreComments = true };
using (var reader = XmlReader.Create(inputxmlPath, settings))
{
doc = XDocument.Load(reader);
}

关于c# - 在 C# 中读取和写入 XML 文件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35293722/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com