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

时间:2013-05-29 06:21:57

标签: c# asp.net xml xmldocument xmlnode

我的App_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)

4 个答案:

答案 0 :(得分:6)

编辑后调用保存,如果不需要覆盖原始

,可以给出不同的名称

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"));

答案 1 :(得分:0)

之后你还没有保存文件

使用xDoc.save(Server.MapPath("~/App_Data/conf.xml.config"));

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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