C# 如何使用新值更新XML节点?

C# 如何使用新值更新XML节点?,c#,asp.net,xml,xmldocument,xmlnode,C#,Asp.net,Xml,Xmldocument,Xmlnode,我的App\u Data文件夹中有一个xml。我需要编辑该xml的节点中的值。我试过的是- XmlDocument xDoc = new XmlDocument(); xDoc.Load(Server.MapPath("~/App_Data/conf.xml.config")); XmlNodeList aNodes = xDoc.SelectNodes("/ConfigInf"); foreach (XmlNode node i

我的
App\u Data
文件夹中有一个xml。我需要编辑该xml的节点中的值。我试过的是-

        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(Server.MapPath("~/App_Data/conf.xml.config"));

        XmlNodeList aNodes = xDoc.SelectNodes("/ConfigInf");
        foreach (XmlNode node in aNodes)
        {
            XmlNode child1 = node.SelectSingleNode("Node1");
            XmlNode child2 = node.SelectSingleNode("Node2");              

            child1.InnerText = "Value1";
            child2.InnerText = "Value2";
        }

我需要用新值重新编写xml,因为当我再次尝试访问相同的xml时,它应该包含新值。但是当我访问xml时,我仍然只在像这样调用Test.LoadConf(Server.MapPath(“./App_Data/conf.xml.config”))时才会得到旧的(初始)值。如何使用新值写入XML或任何替代方法,如使用新值创建新XML?(因为我只需要在单个页面中访问此XML)

编辑后调用save,如果不需要覆盖原始文件,则可以指定不同的名称

e、 g.名为
new.conf.xml.config的新文件

xDoc.Save(Server.MapPath("~/App_Data/new.conf.xml.config"));
下次您可以像往常一样加载原件

xDoc.Load(Server.MapPath("~/App_Data/conf.xml.config"));

之后您还没有保存该文件


使用
xDoc.save(Server.MapPath(“~/App\u Data/conf.xml.config”)

可以使用nodeValue属性更改文本节点的值

以下代码更改第一个元素的文本节点值:示例:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";

来源:

您可能希望在进行这些更改后保存该文件,因为这些更改只应用于内存中。Damith,Thanx非常感谢您的回答。但它需要一些时间,因为Visual studio会显示一个消息框,说明文件已在源代码之外修改。。。有没有办法避免这种情况?因为您已将此配置文件添加到解决方案中。当应用程序更新该文件时,VS警告您该文件已在外部修改。。当您实际部署此应用程序时,没有问题。不用担心,在我保存到新的xml文件时没有问题。谢谢你的宝贵意见。
node["Node1"].InnerText = "Value1";
node["Node2"].InnerText = "Value2";