2011-08-03 9 views
0

我米具有使用LINQ或其他任何在一個字符串變量填充從XML字符串OBJ編輯後或刪除幾個要素,在C#

<root> 

    <head> 
    </head> 

    <body> 

    <head> 
    </head> 

    <params> 
    </params> 

    </body> 
</root> 

所以無論是以下類型的內容我希望刪除該第二頭身體內部的元素標記。所以結果字符串變成這樣。

<root> 

    <head> 
    </head> 

    <body> 

    <params> 
    </params> 

    </body> 
</root> 

如何做到這一點,是蘇氨酸任何簡單的方法,而不是字符串匹配或模式匹配的方法。

感謝你們進階

+0

你的問題似乎並沒有涉及到它的標題.... – Jon

回答

1

以下是如何實現你想要的方法。

XDocument doc = XDocument.Parse(""); // use Parse when you have a xml string or use XDocument.Load("") if you have a xml file 
var element = doc.Descendants("body").Elements("head"); //selects all head elements that are under body element 
if (element != null) 
    element.Remove(); 
string result = doc.ToString(); 
+0

哎通過這個方式也是結果變量包含相同的字符串沒有消除任何 – Abhi

+0

但我想如果我用這個 如果(元素! = null) doc.Descendants(「body」)。Elements(「head」)。Remove(); 那麼也許事情是可能的 – Abhi

+1

我測試了一下我張貼使用此字符串 的代碼。該元素不是null(它找到一個頭節點uder正文元素)並被刪除。結果字符串爲 「 」 –

1

嗯,你可以讀取字符串到XmlDocument,找到問題的節點,並再次將文件刪除,序列化。