【发布时间】:2015-01-27 11:10:36
【问题描述】:
我创建了一个带有节点的 XElement,它的 XML 如下所示。
如果它们包含“条件”节点,我想删除所有“规则”节点。
我创建了一个如下的 for 循环,但它不会删除我的节点
foreach (XElement xx in xRelation.Elements())
{
if (xx.Element("Conditions") != null)
{
xx.Remove();
}
}
示例:
<Rules effectNode="2" attribute="ability" iteration="1">
<Rule cause="Cause1" effect="I">
<Conditions>
<Condition node="1" type="Internal" />
</Conditions>
</Rule>
<Rule cause="cause2" effect="I">
<Conditions>
<Condition node="1" type="External" />
</Conditions>
</Rule>
</Rules>
如果所有“规则”节点包含“条件”节点,我该如何移除它们?
【问题讨论】:
-
在删除项目时不能使用 foreach 迭代规则元素。相反,您可以将它们收集在一个列表中,然后使用 for 循环进行迭代并删除它们。
标签: c# .net xml linq-to-xml