2016-02-25 2 views
0

есть, что XML-файл:как изменить XML-узел, используя C#

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

и я хочу, чтобы изменить значение <value> в чем-то еще, я попробовал метод пара, но не может найти атрибут <value>

+0

Можете ли вы показать нам, что вы пробовали? – bit

+0

- это элемент, а не атрибут. Попробуйте искать элемент, а не атрибут. – publicgk

ответ

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

Вы можете загрузить XML в XDocument объекта (System.Xml.Linq имен), а затем изменить значение, как это:

// 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"); 
Смежные вопросы