If you need to remove nodes from an xml document, here is an example.
This sample clean duplicated nodes and only keeps the last one (according to the date field).
Source.xml (the file to filter)
<?xmlversion="1.0"encoding="utf-8" ?>
<Root>
<Products>
<Product>
<Name>Product1</Name>
<DataGroup>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-01-10 </Date>
</Data>
<Data>
<Name>NADF</Name>
<Value>VADF</Value>
<Date>2006-01-13</Date>
</Data>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-02-09</Date>
</Data>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-01-19</Date>
</Data>
<Data>
<Name>NADF</Name>
<Value>VADF</Value>
<Date>2006-03-09</Date>
</Data>
<Data>
<Name>NAON</Name>
<Value>VAON</Value>
<Date>2006-02-22</Date>
</Data>
</DataGroup>
</Product>
<Product>
<Name>Product2</Name>
<DataGroup>
<Data>
<Name>NADF</Name>
<Value>VADF</Value>
<Date>2006-01-13</Date>
</Data>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-01-19</Date>
</Data>
<Data>
<Name>NAON</Name>
<Value>VAON</Value>
<Date>2006-03-09</Date>
</Data>
<Data>
<Name>NAON</Name>
<Value>VAON</Value>
<Date>2006-04-21</Date>
</Data>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-05-23</Date>
</Data>
</DataGroup>
</Product>
</Products>
</Root>
Destination.xml (the result after filtering)
<?xmlversion="1.0"encoding="utf-8"?>
<Root>
<Products>
<Product>
<Name>Product1</Name>
<DataGroup>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-02-09</Date>
</Data>
<Data>
<Name>NADF</Name>
<Value>VADF</Value>
<Date>2006-03-09</Date>
</Data>
<Data>
<Name>NAON</Name>
<Value>VAON</Value>
<Date>2006-02-22</Date>
</Data>
</DataGroup>
</Product>
<Product>
<Name>Product2</Name>
<DataGroup>
<Data>
<Name>NADF</Name>
<Value>VADF</Value>
<Date>2006-01-13</Date>
</Data>
<Data>
<Name>NAON</Name>
<Value>VAON</Value>
<Date>2006-04-21</Date>
</Data>
<Data>
<Name>NABC</Name>
<Value>VABC</Value>
<Date>2006-05-23</Date>
</Data>
</DataGroup>
</Product>
</Products>
</Root>
C# Source with .NET 2.0
XmlDocument xmlSourceDoc = new XmlDocument();
xmlSourceDoc.Load("Source.xml");
XmlNodeList productList = xmlSourceDoc
.SelectNodes(@"//Root/Products/Product" );
SortedDictionary<string, XmlNode> nodesToKeep
= new