gpt4 book ai didi

c# - 在 xdocument 中移动节点

转载 作者:行者123 更新时间:2023-11-30 17:53:18 26 4
gpt4 key购买 nike

我想通过属性找到一个节点并将其移动到底部。

XNode node = doc.Root.Elements().Where(e => e.Attribute("id").Value == "123").FirstOrDefault();
if (node != null)
{
node.Root.Elements().Where(s => e.Attribute("id").Value == "123").Remove();
doc.Root.Add(node);
}

这并不总是有效。在 .Remove() 行,我有时会收到 nullReferenceException。所以我想这意味着它匹配并在 FirstOrDefault() 上获得了一个节点,但是两行之后相同的 linq 查询没有匹配任何东西。看不出这是怎么可能的。我错过了什么吗?没有任何内容同时触及此文档或任何内容。

最佳答案

请使用这个sample :

 var foos = (from xElem in xDoc.Root.Descendants("Foo")
where xElem.Attribute("id").Value == "2" || xElem.Attribute("id").Value == "3"
select xElem).ToList();

var newParentElem = (from xElem in xDoc.Root.Descendants("SubSection")
where xElem.Attribute("id").Value == "C"
select xElem).Single();

foreach(var xElem in foos)
{
xElem.Remove();
newParentElem.Add(xElem);
}

关于c# - 在 xdocument 中移动节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508976/

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