簡體   English   中英

XDocument刪除節點

[英]XDocument deleting a node

如何從已加載的XDocument中刪除特定節點? 我的XML文檔如下所示:

<Snippets>
  <Snippet name="if">
    <SnippetCode>      
 if (condition)
 {
 }
    </SnippetCode>
</Snippet>

<Snippets>
  <Snippet name="foreach">
    <SnippetCode>      
 ...
    </SnippetCode>
</Snippet>

....

</Snippets>

所以說,如果我只想刪除foreach片段,我該怎么做? 我嘗試了doc.Descendants.Remove(),但它對我不起作用(該節點未刪除)。

編輯-在那一點上,我該如何重命名代碼段並通過代碼編輯代碼段? 我還沒有研究過,但是可以提供一些幫助。

未經測試,但這應該可行。 讓我知道是否要解釋。

xdoc.Descendents("Snippet").Where(xe => xe.Attribute("name") != null 
    && xe.Attribute("name").Value == "foreach").Single().Remove()

您可以輕松完成此操作,最后應保存文件:

       XDocument doc = XDocument.Load("XmlFile1.xml");
        doc.Descendants("Snippet").Where(p => p.Attribute("name") != null 
                                        && p.Attribute("name").Value == "foreach")
                                        .Remove();
        doc.Save("XmlFile1.xml");

暫無
暫無

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

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