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