繁体   English   中英

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

[英]add elements multiple values in XDocument C#

我想添加一个带有名为属性的标签名称的部分,并具有一个名为属性的项目值,该属性具有多个值,例如节点名称,值

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

尝试以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM