gpt4 book ai didi

c# - 如何从 XElement 中删除特定节点?

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:38 31 4
gpt4 key购买 nike

我创建了一个带有节点的 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>

如果所有包含“条件”节点的“规则”节点如何删除?

最佳答案

你可以试试这个方法:

var nodes = xRelation.Elements().Where(x => x.Element("Conditions") != null).ToList();

foreach(var node in nodes)
node.Remove();

基本思想:您不能删除当前正在迭代的集合中的元素。
因此,首先您必须创建要删除的节点列表,然后删除这些节点。

关于c# - 如何从 XElement 中删除特定节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28169101/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com