gpt4 book ai didi

c# - 从 XML 中删除一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:36 25 4
gpt4 key购买 nike

我想从 XML 树中删除一个元素,我尝试使用以下 URL 中提到的方法来执行此操作。

https://msdn.microsoft.com/en-us/library/bb387051.aspx

我的 XML 与上面的有点不同,当我尝试使用它时,它只会删除第一个节点中的 Grandchild1。它不会为第二个执行此操作。

XElement root = XElement.Parse(@"<Root>
<Child1>
<GrandChild1/>
<GrandChild2/>
<GrandChild3/>
</Child1>
<Child1>
<GrandChild1/>
<GrandChild2/>
<GrandChild3/>
</Child1>
</Root>");

root.Element("Child1").Element("GrandChild1").Remove();

执行后输出:

<Child1>       
<GrandChild2/>
<GrandChild3/>
</Child1>
<Child1>
<GrandChild1/>
<GrandChild2/>
<GrandChild3/>
</Child1>

预期输出:

    <Child1>
<GrandChild2/>
<GrandChild3/>
</Child1>
<Child1>
<GrandChild2/>
<GrandChild3/>
</Child1>

为什么它不这样做,我怎样才能让它发挥作用?

谢谢!

最佳答案

Element方法仅返回一个单个 元素。你想要:

root.Elements("Child1").Elements("GrandChild1").Remove();

使用:

这样会找到每个 GrandChild1直接位于 Child1 下的元素直接位于根目录下的元素。如果您真的不关心 GrandChild1 在哪里元素找到了,你一个使用

root.Descendants("GrandChild1").Remove();

... 但使用 Elements给你更多的控制权。

关于c# - 从 XML 中删除一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331432/

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