我需要在某些节点之前和之后移动同级节点。这是我正在使用的代码
<tabs>
<tab>
<name>Overview</name>
</tab>
<tab>
<name>Testing</name>
</tab>
<tab>
<name>Performance</name>
</tab>
<tab>
<name>Braking</name>
</tab>
</tabs>
我想将带有测试的选项卡移至概述上方。我该如何使用 linq to XML 来解决这个问题?
您可以通过删除元素然后将它们重新插入到所需位置来移动元素:
var doc = XDocument.Parse(@"<tabs>...</tabs>");
var tab = doc.Root.Elements().ElementAt(1);
tab.Remove();
doc.Root.AddFirst(tab);
或者,您可以按照所需的顺序从现有元素创建新文档:
var doc = XDocument.Parse(@"<tabs>...</tabs>");
var tabs = doc.Root.Elements();
var result = new XDocument(
new XElement("tabs",
tabs.ElementAt(1),
tabs.ElementAt(0),
tabs.ElementAt(2)));
我还没有测试过,但这可能有效:
void Swap(XElement a, XElement b)
{
var c = new XElement("dummy");
a.ReplaceWith(c);
b.ReplaceWith(a);
c.ReplaceWith(b);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)