2
我有一個非常基本的LINQ查詢,以便能夠從XML file.But刪除一個節點,當我運行這段代碼,我在下面得到這個例外。廣東話刪除的XmlElement使用LINQ查詢
Sequence contains no elements
然後我用,而不是首先()(如前面提到的文章)FirstOrDefault(),這個時候Exection消息變成這個
Object reference not set to an instance of an object.
這是我的代碼
protected void Page_Load(object sender, EventArgs e)
{
XDocument doc = XDocument.Load(Server.MapPath("Kitaplar.xml"));
var toDelete = (from data in doc.Elements("Kitap") where data.Attribute("id").Value == "1" select data).FirstOrDefault();
toDelete.Remove();
doc.Save(Server.MapPath("Kitaplar.xml"));
}
而且這是XMLFILE
<?xml version="1.0" encoding="utf-8"?>
<Kitaplar>
<Kitap id="1">
<Kitapadi>asasa</Kitapadi>
<Yazar>sasas</Yazar>
<Sayfa>22</Sayfa>
</Kitap>
<Kitap id="2">
<Kitapadi>jhjh</Kitapadi>
<Yazar>kjkj</Yazar>
<Sayfa>33</Sayfa>
</Kitap>
<Kitap id="3">
<Kitapadi>lkjhg</Kitapadi>
<Yazar>gffd</Yazar>
<Sayfa>988</Sayfa>
</Kitap>
<Kitap id="4">
<Kitapadi>lkjhg</Kitapadi>
<Yazar>gffd</Yazar>
<Sayfa>988</Sayfa>
</Kitap>
</Kitaplar>
每個人看起來都很好,我做錯了什麼?
調試。 'doc'是否填滿了實際的文件? – Matthijs
在doc.Root.Elements(...)中的數據中使用'''doc'變量指向文檔表示,其第一個元素是'Kitaplar'節點(根元素) –
你是對的jimmy。它的工作原理是這樣的。@Matthijs感謝你的幫助 – user3733078