Используйте xml linq со словарем. Смотрите код ниже
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication159
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
XNamespace ns = doc.Root.GetDefaultNamespace();
Dictionary<string, string> dict1 = doc.Descendants(ns + "MarketplaceASIN")
.GroupBy(x => (string)x.Element(ns + "MarketplaceId"), y => (string)y.Element(ns + "ASIN"))
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
//where MarketplaceId may be repeated
Dictionary<string, List<string>> dict2 = doc.Descendants(ns + "MarketplaceASIN")
.GroupBy(x => (string)x.Element(ns + "MarketplaceId"), y => (string)y.Element(ns + "ASIN"))
.ToDictionary(x => x.Key, y => y.ToList());
}
}
}