我試圖從XElement (使用.Remove())刪除後代元素,我似乎得到一個空對象引用,我不知道爲什麼。根據屬性值從XML中刪除元素?
說完看着前面的問題與這個稱號(see here),我找到了一種方法來刪除它,但我仍然不明白爲什麼我第一次嘗試沒有工作的方式。
有人能夠啓發我嗎?
String xml = "<things>"
+ "<type t='a'>"
+ "<thing id='100'/>"
+ "<thing id='200'/>"
+ "<thing id='300'/>"
+ "</type>"
+ "</things>";
XElement bob = XElement.Parse(xml);
// this doesn't work...
var qry = from element in bob.Descendants()
where element.Attribute("id").Value == "200"
select element;
if (qry.Count() > 0)
qry.First().Remove();
// ...but this does
bob.XPathSelectElement("//thing[@id = '200']").Remove();
感謝, 羅斯
謝謝svick,我明白了現在的問題。 – 2012-01-16 10:26:17