gpt4 book ai didi

c# - 如何更新 XML 节点?

转载 作者:数据小太阳 更新时间:2023-10-29 02:15:29 24 4
gpt4 key购买 nike

读取 XML 文件并获取准确的节点文本很容易,但如何使用新值更新该节点?

阅读:

public static String GetSettings(SettingsType type, SectionType section)
{
XmlTextReader reader = new XmlTextReader(HttpContext.Current.Request.MapPath(APPSETTINGSPATH));
XmlDocument document = new XmlDocument();
document.Load(reader);

XmlNode node = document.SelectSingleNode(
String.Format("/MyRootName/MySubNode/{0}/{1}",
Enum.Parse(typeof(SettingsType), type.ToString()),
Enum.Parse(typeof(SectionType), section.ToString())));
return node.InnerText;
}

写...?

public static void SetSettings(SettingsType type, SectionType section, String value)
{
try
{
XmlTextReader reader = new XmlTextReader(HttpContext.Current.Request.MapPath(APPSETTINGSPATH));
XmlDocument document = new XmlDocument();
document.Load(reader);

XmlNode node = document.SelectSingleNode(
String.Format("/MyRootName/MySubNode/{0}/{1}",
Enum.Parse(typeof(SettingsType), type.ToString()),
Enum.Parse(typeof(SectionType), section.ToString())));
node.InnerText = value;
node.Update();
}
catch (Exception ex)
{
throw new Exception("Error:", ex);
}
}

注意这一行,node.Update();不存在,但这就是我想要的:)

我看到了XmlTextWriter对象,但是它会将整个XML写到一个新文件中,我只需要在原来的Node中更新一个值,我就可以另存为一个新文件,然后将新文件重命名为原来的文件名称但是...必须更简单才能做到这一点吗?

你们中的任何人都有关于执行此操作的示例代码吗?

谢谢

最佳答案

您不需要“更新”方法 - 设置 InnerText 属性会更新它。但是,它只应用内存中的更新。你确实虽然需要重写整个文件 - 你不能只更新它的一小部分(至少,不是没有很多的工作并且没有出问题-开箱即用的支持)。

关于c# - 如何更新 XML 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482986/

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