2010-04-21 107 views
0

我的XML是从哪里来的,我必须取出一本书详细删除XML标签C#

<Books> 
    <bookdetail> 
    <bookname>ThreeIdiot</bookname> 
    <bookauthor>chetan bhagat</bookauthor> 
    <bookid>idi001</bookid> 
    <isavailable>true</isavailable> 
    <subscribername>NA</subscribername> 
    </bookdetail> 
    <bookdetail> 
    <bookname>Csharp</bookname> 
    <bookauthor>Kanitker</bookauthor> 
    <bookid>Cshar001</bookid> 
    <isavailable>true</isavailable> 
    <subscribername>NA</subscribername> 
    </bookdetail> 
    <bookdetail> 
    <bookname>VBbasic</bookname> 
    <bookauthor>Andrew Parker</bookauthor> 
    <bookid>idi001</bookid> 
    <isavailable>true</isavailable> 
    <subscribername>NA</subscribername> 
    </bookdetail> 
</Books> 

现在我要与bookid == Cshar001删除图书详细信息, 请让我知道任何的LINQ命令使用将搜索并从XML中只删除该标签。

+0

看起来这是一门功课 – 2010-04-21 10:22:03

回答

1

可以使用XNode.Remove()方法为:

var xDoc = XDocument.Load("myfilename.xml"); 
var xElement = (
    from x in xDoc.Root.Elements("bookdetail") 
    where x.Element("bookid").Value == "Cshar001" 
    select x 
    ).FirstOrDefault(); 
xElement.Remove(); 
xDoc.Save("myfilename.xml"); 
+0

其中x.Element( “BOOKID”)== “Cshar001” 选择x在这一行给错误 – Vijay 2010-04-21 11:09:56

+0

对不起关于这一点,忘了'.Value'。 – Prutswonder 2010-04-21 11:37:13