【问题标题】:How to update XML nodes with new values?如何使用新值更新 XML 节点?
【发布时间】:2013-05-24 07:08:02
【问题描述】:

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

【问题讨论】:

  • 您可能希望在进行这些更改后保存文件,因为它们仅在内存中应用。

标签: c# asp.net xml xmldocument xmlnode


【解决方案1】:
node["Node1"].InnerText = "Value1";
node["Node2"].InnerText = "Value2";

【讨论】:

    【解决方案2】:

    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】:

      在那之后你还没有保存文件

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

      【讨论】:

        【解决方案4】:

        编辑后调用save,如果不需要覆盖原来的可以给不同的名字

        例如名为new.conf.xml.config的新文件

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

        下次你可以照常加载原件

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

        【讨论】:

        • Damith,非常感谢您的回答。但是它需要一些时间,因为 Visual Studio 会显示一个消息框,说明文件已在源外部修改......有什么办法可以避免这种情况?
        • 因为您已将此配置文件添加到您的解决方案中。当应用程序 VS 更新该文件时警告您该文件已在外部修改。当您实际部署此应用程序时,没有问题。不用担心这个
        • 我保存到新的 xml 文件时没有问题。感谢您的宝贵意见。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        相关资源
        最近更新 更多