Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在已经存在的xml文件中添加新属性?_C#_Xml_Linq_Linq To Xml - Fatal编程技术网

C# 如何在已经存在的xml文件中添加新属性?

C# 如何在已经存在的xml文件中添加新属性?,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我正在开发一个解析.csproj文件的应用程序。如果存在属性,则需要向该属性添加一个附加值。如果属性不存在,我希望应用程序将此属性及其值添加到指定的父节点。我怎样才能做到这一点?我正在使用LINQtoXML解析项目文件 未经测试,但它是否类似于: XNamespace ns = @"http://schemas.microsoft.com/developer/msbuild/2003"; XDocument doc = XDocument.Load(path); var noWarn = (fr

我正在开发一个解析.csproj文件的应用程序。如果存在
属性,则需要向该属性添加一个附加值。如果属性不存在,我希望应用程序将此属性及其值添加到指定的父节点。我怎样才能做到这一点?我正在使用LINQtoXML解析项目文件

未经测试,但它是否类似于:

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

我对此做了一些轻微的修改,它工作得非常完美……thanx为您提供帮助:)