如何用新值更新XML节点

本文关键字:XML 节点 更新 何用新 | 更新日期: 2023-09-27 18:15:44

我有一个xml在我的App_Data文件夹。我需要编辑该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)

如何用新值更新XML节点

编辑后调用save,如果不需要覆盖原

,可以给出不同的名称

。新建文件命名为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_Data/conf.xml.config"));

nodeValue属性可以用来改变文本节点的值。

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

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

来源:http://www.w3schools.com/DOM/dom_nodes_set.asp

node["Node1"].InnerText = "Value1";
node["Node2"].InnerText = "Value2";