我想添加一个名为properties的标记名称的部分,并且有一个名为property的项值具有多个值,如节点名称,值
org xml文件就像这样
<testsuites>
<testsuite>
blah blah
</testsuite>
</testsuites>
添加后,我希望它显示如下
<testsuites>
<testsuite>
<properties>
<property name="name" "value"="desirevalue"/>
</properties>
blah blah
</testsuite>
</testsuites>
我写的代码有一些问题,它实际上创建了两行属性,但我希望它们作为一行。我该如何更新我的代码?也似乎最后两行有问题。我得到“对象引用未设置为对象的实例”错误
XDocument doc = XDocument.Load(fileOfReportInXML);
XElement root= new XElement("properties");
root.Add(new XElement("property", "name= node"));
root.Add(new XElement("property","value=desirevalue"));
doc.Element("testsuite").Add(root);
doc.Save(fileOfReportInXML);
答案 0 :(得分:0)
请尝试以下代码:
//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"))));
如果您想为所有测试元素添加新元素:
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);