0

以下片段删除了包含“Name”元素的“DpsRecord”元素,该元素的值包含“JOSE”。但是,我不明白在将 Linq 查询应用于 root 并获取 dpsRecords(查询左侧)然后在 dpsRecords 中删除之后,元素也会在 root 中删除。

XElement root = XElement.Load("input.xml");
IEnumerable<XElement> dpsRecords = from elem in
                        root.Elements("DpsRecord")
                        where (((string)elem.Element("Name")).Contains("JOSE"))              
                        select elem;
foreach (XElement elem in dpsRecords)
{
   elem.Remove();
}
root.Save("output.xml"); 
4

1 回答 1

2

那么 Remove 方法http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.remove.aspx会从其父节点中删除它被调用的节点。

另请注意,您不需要 foreach,您可以执行dspRecords.Remove().

于 2012-05-09T11:46:39.417 回答