我需要为XDocument创建一个临时根节点,但我需要在不破坏引用的情况下执行此操作。
所以应该仍然有用
XElement x = doc.Root.FirstNode;
// Inset magic here that adds the "MyTempRoot"
Console.WriteLine(x.Name); // This should still work
实施例
<elements>
<item />
<item />
<item />
</elements>
要
<MyTempRoot>
<elements>
<item />
<item />
<item />
</elements>
</MyTempRoot>
答案 0 :(得分:1)
以下内容应该足够了
doc.Root.ReplaceWith(new XElement("MyTempRoot", doc.Root));
答案 1 :(得分:0)
想出办法
private void AddTempRoot(XDocument doc)
{
XElement tempRoot= new XElement("MyTempRood");
var elements = doc.Elements();
foreach (var element in elements)
{
element.Remove();
tempRoot.Add(element);
}
doc.Add(tempRoot);
}
private void RemoveTempRoot(XDocument doc)
{
var tempRoot = doc.Root;
tempRoot.Remove();
var elements = tempRoot.Elements();
foreach (var element in elements)
{
element.Remove();
doc.Add(element);
}
}