C# 在XDocument C中添加多个值的元素#

C# 在XDocument C中添加多个值的元素#,c#,xml,junit,C#,Xml,Junit,我想添加一个名为properties的标记名部分,并有一个名为property的项值和多个值,如node name、value org xml文件是这样的 <testsuites> <testsuite> blah blah </testsuite> </testsuites> <testsuites> <testsuite> <properties>

我想添加一个名为properties的标记名部分,并有一个名为property的项值和多个值,如node name、value

org xml文件是这样的

<testsuites>
    <testsuite>
        blah blah
    </testsuite>
</testsuites>
<testsuites>
    <testsuite>
        <properties>
        <property name="name" "value"="desirevalue"/>
        </properties>
        blah blah
    </testsuite>
</testsuites>
请尝试以下代码:

//Load XML file
XDocument doc = XDocument.Load(fileOfReportInXML);
编辑:将元素添加到xdocument的第一个元素中

doc.Root.Elements("testsuite").First().Add(new XElement("properties", new XElement("property", new XAttribute("name", "name"), new XAttribute("value", "desirevalue"))));
如果要向所有testsuite元素添加新元素:

foreach (var element in doc.Root.Elements("testsuite"))
{
     //Skip adding element if element already exists
     if (element.HasElements && element.Element("properties") != null) continue;

     element.Add(new XElement("properties", new XElement("property", new XAttribute("name", "name"), new XAttribute("value", "desirevalue"))));
}
保存XML文档

//Save XML file
doc.Save(fileOfReportInXML);

我得到一个错误,显示“对象引用未设置为对象的实例”。使用您的解决方案,如果我将其更改为doc.Element(“testsuites”)。添加(新XElement(“properties”,新XElement(“property”,新XAttribute(“name”,“name”),新XAttribute(“value”,“desirevalue”));那么编译就可以了,但这不是我想要的。doc.Element(“testsuite”)和doc.Element(“testsuite”)之间有什么区别
//Save XML file
doc.Save(fileOfReportInXML);