如何用新值更新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)
编辑后调用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";