public static List<ProductDetail> processXml(string xmlFileName) { long numberOfRecordsProcessed = 0; XmlTextReader reader = new XmlTextReader(xmlFileName); StringBuilder str = new StringBuilder(); ProductList pList = new ProductList(); List<ProductDetail> pl = new List<ProductDetail>(); List<string> un = new List<string>(); // loop through all the nodes while (reader.Read()) { if (XmlNodeType.Element == reader.NodeType) { if (reader.Name != "ROOT" && reader.Name != "Products") { ProductDetail pd = new ProductDetail(); do{ if (reader.Name == "ProductCode") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ProductCode = reader.Value; } } if (reader.Name == "ProductName") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ProductName = reader.Value; } } if (reader.Name == "ProductLongDescription") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ProductLongDescription = reader.Value; } } if (reader.Name == "Barcode") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.Barcode = reader.Value; } } if (reader.Name == "Brand") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.Brand = reader.Value; } } if (reader.Name == "Price") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.Price = reader.Value; } } if (reader.Name == "Category1") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.Category1 = reader.Value; } } if (reader.Name == "OnSpecial") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.OnSpecial = reader.Value; } } if (reader.Name == "SpecialPrice") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.SpecialPrice = reader.Value; } } if (reader.Name == "ProductURL") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ProductURL = reader.Value; } } if (reader.Name == "PreOrderItem") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.PreOrderItem = reader.Value; } } if (reader.Name == "ReleaseDate") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ReleaseDate = reader.Value; } } if (reader.Name == "ProductKeywords") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ProductKeywords = reader.Value; } } if (reader.Name == "ImageURL") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ImageURL = reader.Value; } } if (reader.Name == "ShippingEstimate") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.ShippingEstimate = reader.Value; } } if (reader.Name == "StockLevel") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.StockLevel = reader.Value; } } if (reader.Name == "Title2") { reader.Read(); if (XmlNodeType.Text == reader.NodeType) { pd.Title2 = reader.Value; } } //else //{ // string sa = reader.Name; // reader.Read(); // if (XmlNodeType.Text == reader.NodeType) // { // un.Add(sa + " : " + reader.Value); // } //} bool b = reader.Read(); if (!b) break; }while(reader.Name != "Products"); pl.Add(pd); } } } numberOfRecordsProcessed = pl.Count; return pl; }