Read a XML (from a string) and get some fields - Problems reading XML Read a XML (from a string) and get some fields - Problems reading XML xml xml

Read a XML (from a string) and get some fields - Problems reading XML


You should use LoadXml method, not Load:

xmlDoc.LoadXml(myXML); 

Load method is trying to load xml from a file and LoadXml from a string. You could also use XPath:

XmlDocument xmlDoc = new XmlDocument();xmlDoc.LoadXml(xml);string xpath = "myDataz/listS/sog";var nodes = xmlDoc.SelectNodes(xpath);foreach (XmlNode childrenNode in nodes){    HttpContext.Current.Response.Write(childrenNode.SelectSingleNode("//field1").Value);} 


Use Linq-XML,

XDocument doc = XDocument.Load(file);var result = from ele in doc.Descendants("sog")              select new              {                 field1 = (string)ele.Element("field1")              }; foreach (var t in result)  {      HttpContext.Current.Response.Write(t.field1);  }

OR : Get the node list of <sog> tag.

 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(myXML); XmlNodeList parentNode = xmlDoc.GetElementsByTagName("sog"); foreach (XmlNode childrenNode in parentNode)  {    HttpContext.Current.Response.Write(childrenNode.SelectSingleNode("field1").InnerText);   }


The other answers are several years old (and do not work for Windows Phone 8.1) so I figured I'd drop in another option. I used this to parse an RSS response for a Windows Phone app:

XDocument xdoc = new XDocument();xdoc = XDocument.Parse(xml_string);