gpt4 book ai didi

c# - 覆盖 xml 文件 #2

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:04 25 4
gpt4 key购买 nike

我正在尝试编辑一个 xml,然后用相同的名称保存它。

我有以下代码:

public int ModifyFile(string xmlpath, string option, int returnCode)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlpath);
XmlNode parentNode = xmlDoc.DocumentElement;
if (option.Equals("delete"))
{
returnCode = DeleteTag(parentNode, "identity", returnCode);
}

xmlDoc.Save(xmlpath);

return returnCode;
}


public int DeleteTag(XmlNode root, string deleteName, int returnCode)
{
foreach (XmlNode node in root.ChildNodes)
{
if (node.Name == deleteName)
{
root.RemoveChild(node);
returnCode = 1;
}
else
{
returnCode = DeleteTag(node, deleteName, returnCode);
}
}
return returnCode;
}

当它执行 xmlDoc.Save(path) 时,我收到“该进程无法访问文件 'c:\temp\testfile.xml',因为它正被另一个进程使用”。

我如何才能保存 testfile.xml 所做的更改?我需要保持路径和名称相同。

public static bool hasIdentityTag(string path)
{
bool isTextPresent = false;
if (File.Exists(path))
{
XmlTextReader rdrXml = new XmlTextReader(path);

do
{
switch (rdrXml.NodeType)
{
case XmlNodeType.Element:
if (rdrXml.Name.Equals("identity"))
{
isTextPresent = true;
rdrXml.Close();
}
break;
}
} while (rdrXml.Read());
}
else
{
Console.WriteLine("The file {0} could not be located", path);
}

return isTextPresent;
}

最佳答案

一个选项是将新的 XML 保存到一个临时文件,关闭 XmlDocument 并处理该对象,然后将临时文件移回正确的位置。

关于c# - 覆盖 xml 文件 #2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981661/

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