我确实关注xml:
<Assembly>
<Bench>
<Typ>P1</Typ>
<DUT>
<A>6</A>
</DUT>
</Bench>
<Bench>
<Typ>P2</Typ>
<DUT>
<A>6</A>
</DUT>
</Bench>
</Assembly>
如何获得可以插入新DUT的&#39; P2&#39; -element?我尝试了以下代码,这给了我一个错误:
var xElement = xmlDoc.Element("Assembly")
.Elements("Bench")
.Where(item => item.Attribute("Typ").Value == "P2")
.FirstOrDefault();
xElement.AddAfterSelf(new XElement("DUT"));
提前致谢
答案 0 :(得分:3)
Typ
是元素名称,不是属性。如果您想在第二个<DUT>
下的现有<DUT>
之后添加新的<Bench>
元素,那么您尝试的代码的这一细微更改应该有效:
var xElement = xmlDoc.Element("Assembly")
.Elements("Bench")
.FirstOrDefault(item => item.Element("Typ").Value == "P2");
xElement.AddAfterSelf(new XElement("DUT"));
答案 1 :(得分:1)
另一种做同样事情的方法,只是为了显示可用的选项。
XElement typ = xmlDoc.Descentants("Typ")
.FirstOrDefault(typ => ((string)typ) == "P2");
您可以使用与har07相同的AddAfterSelf
,或.Parent.Add()
,如果它在父级Bench的位置无关紧要。 Add
会将其添加为最后一个元素。
typ.Parent.Add(new XElement("DUT"));