Я предпочитаю использовать XDocument
, потому что вы просто можете найти его и изменить элементы или атрибуты:
XDocument doc1 = XDocument.Parse("<AnswerSet> <Answer questionId=\"10\" FName=\"test\"> </Answer></AnswerSet> ");
// or if you have related file simply use XDocument doc1 = XDocument.Load(fileFullName);
var element =
doc1.Descendants("AnswerSet").Elements("Answer")
.Where(x => x.Attribute("FName") != null
&& x.Attribute("FName").Value == "test").SingleOrDefault();
if (element != null)
{
var attr = element.Attribute("FName");
attr.Value = "Changed";
}
doc1.Save(filePath);
Редактировать: Descendants("AnswerSet")
находит элементы AnswerSet, Elements ("Ответ") находит элементы ответа,
Where(x => x.Attribute("FName") != null
&& x.Attribute("FName").Value == "test").SingleOrDefault();
находит элемент, который содержит атрибут FName
и значение атрибута равно test
, SingleOrDefault
в последнем, говорит, что у вас должен быть только один такой элемент, также вы можете изменить его (просто вызовите ToList()
) на найти все связанные элементы, и, наконец, в if
я изменю значение элемента, также в конце мы снова сохраняем его с измененными значениями.
Этот язык (linq2xml) слишком прост, и такие функции, как Descendant
и Elements
, наиболее полно используют в нем полные функции, поэтому нет необходимости иметь специальные знания, вы можете просто решить многие проблемы, зная эти функции. .