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