Как я могу добавить новое свойство в уже существующий XML-файл? - PullRequest
1 голос
/ 20 марта 2009

Я работаю над приложением, которое анализирует файл .csproj. Необходимо добавить дополнительное значение к свойству <NoWarn>, если оно существует. Если свойство не существует, я хочу, чтобы приложение добавило это свойство со значением в указанный родительский узел. Как мне этого добиться? Я использую LINQ-to-XML для разбора файла проекта.

1 Ответ

2 голосов
/ 20 марта 2009

Не проверено, но это что-то вроде:

XNamespace ns = @"http://schemas.microsoft.com/developer/msbuild/2003";
XDocument doc = XDocument.Load(path);
var noWarn = (from grp in doc.Descendants(ns + "PropertyGroup")
        from el in grp.Descendants(ns + "NoWarn")
        select el).FirstOrDefault();
if(noWarn==null) {
    var grp = doc.Descendants(ns+"PropertyGroup").First();
    grp.Add(new XElement(ns+"NoWarn", "1234"));
} else {
    noWarn.Value += "; 1234";
}
doc.Save(path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...