我正在开发一个解析.csproj文件的应用程序。它需要为<NoWarn>
属性添加一个额外的值(如果存在)。如果该属性不存在,我希望应用程序将此属性及其值添加到指定的父节点。我怎样才能做到这一点?我正在使用LINQ-to-XML来解析项目文件。
答案 0 :(得分:2)
未经测试,但它是这样的:
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);