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);