Hi this is odd way but try it once
- Read the file content into a string
- print the string and check whether you are getting proper XML or not
- you can use
XMLDocument.LoadXML(xmlstring)
I try with your code and same XML without adding any XML declaration it works for me
XmlDocument doc = new XmlDocument(); doc.Load(@"H:\WorkSpace\C#\TestDemos\TestDemos\XMLFile1.xml"); XmlNodeList nodes = doc.GetElementsByTagName("Product"); XmlNode node = null; foreach (XmlNode n in nodes) { Console.WriteLine("HI"); }
As stated by Phil in below answer please set the xmlStream position to zero if it is not zero.
if (xmlStream.Position > 0) { xmlStream.Position = 0; } XDocument xDoc = XDocument.Load(xmlStream);