簡體   English   中英

臨時添加節點到XDocument

[英]Temporary add node to XDocument

我需要為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>

以下內容就足夠了

doc.Root.ReplaceWith(new XElement("MyTempRoot", doc.Root));

想辦法

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM