Not sure i understand you well, but...
Here is what you need for start:
XDocument xdoc = XDocument.Load("FullFileNameHere");
var result = xdoc.Root.Descendants("deduction")
.GroupBy(x=>x.Element("bankname").Value)
.Select(grp=>new
{
Bank = grp.Key,
Accounts = grp.Select(y=> new
{
Holder = y.Element("accountholder").Value,
Number = y.Element("accountnumber").Value,
Type = y.Element("accounttype").Value,
Branch = y.Element("branch").Value,
Amount = y.Element("amount").Value,
Date = y.Element("date").Value
})
.ToList()
})
.ToList();
foreach(var ba in result)
{
Console.WriteLine("{0}", ba.Bank);
foreach(var d in ba.Accounts)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", d.Holder, d.Number, d.Type, d.Branch, d.Amount, d.Date);
}
Console.WriteLine("");
}
Result:
First National Bank
Georgina Sinclair 408999703657 cheque Fourways 275.00 12/01/2012
Toby Henderson 401255489873 cheque Edenvale 181.03 12/13/2012
ABSA
Zachary Whitehead 409122372301 cheque Irene 70.25 12/01/2012
Katherine Cooke 409155874935 savings Southdowns 975.89 01/01/2013
Bradley James 409254998 savings Melville 207.74 12/09/2012
Sophie Lane 409771987 savings Roodepoort 207.74 12/31/2012
All you need to do is to change above code to your needs.
For furher details, please see:
XDocument Class (System.Xml.Linq)[
^]
LINQ to XML (C#)[
^]
Basic Queries (LINQ to XML) (C#)[
^]