如何使用c#修改xml节点

时间:2016-02-25 05:55:03

标签: c# xml linq-to-xml

有xml文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <applicationSettings>
  <AllSettings>
   <setting name="setting1" serializeAs="String">
    <value>myValue</value>
   </setting>
  </AllSettings>
 </applicationSettings>
</configuration>

我希望将<value>的值更改为其他内容,我尝试了一些方法但找不到属性<value>

2 个答案:

答案 0 :(得分:3)

您可以使用XElement.ReplaceWith

XDocument doc = XDocument.Load("data.xml");
XElement value = doc.Root.Descendants("value").SingleOrDefault();

value.ReplaceWith(new XElement("value", "newValue"));

doc.Save("data.xml");

或者,如其他答案所示,XElement.SetValue

value.SetValue("newValue");

答案 1 :(得分:1)

您可以在XDocument对象(System.Xml.Linq命名空间)中加载XML,然后像这样更改值:

// load XML from string:
var xdoc = XDocument.Parse(xml);
// or load XML from file:
var xdoc = XDocument.Load("filename.xml");

// change value
xdoc.Root.Element("applicationSettings").Element("AllSettings").Element("setting").Element("value").SetValue("myNewValue");