string Data = reader["ScenarioData"].ToString(); SqlXml sqlXml = reader["ScenarioData"].GetSqlXml(); using (var reader = sqlXml.CreateReader()) { // Do something with the XML, like maybe var doc = XDocument.Load(reader); var url = doc.Element("Scenario") .Element("Steps") .Element("Step") .Attribute("Url") .Value; // etc. } SqlDataReader reader= cmd.ExecuteReader(); while (reader.Read()) { ..... // you have already an xml string stocked in data string data = (string)reader["ScenarioData"]; // parse it var doc = XDocument.Parse(data); var step = doc.Descendants("Step").Attributes().FirstOrDefault(); var url = step != null ? step.Value : String.Empty; ...... } using System.Xml.Linq; var xml = XElement.Parse(reader["ScenarioData"].ToString()); //assuming there can be multiple elements var steps = xml.Element("Scenario").Element("Steps").Elements("Step"); var url = steps.First().Attribute("Url").Value;