如何在现有的xml文件中添加新属性?

时间:2009-03-20 14:58:13

标签: c# xml linq linq-to-xml

我正在开发一个解析.csproj文件的应用程序。它需要为<NoWarn>属性添加一个额外的值(如果存在)。如果该属性不存在,我希望应用程序将此属性及其值添加到指定的父节点。我怎样才能做到这一点?我正在使用LINQ-to-XML来解析项目文件。

1 个答案:

答案 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);