Archive
Posts Tagged ‘Linq to XML’
Linq to XML
23 April 2010
Leave a comment
Here is a very short post giving an example on how to use Linq to XML.
Let’s say we have the following XML
<?xml version="1.0" encoding="utf-8" ?> <projects> <project title="Kraankuil"> <screenshot>kraankuil.jpg</screenshot> <uri>http://www.kraankuil.co.za</uri> <technologies>Gimp, ASP.NET, CMS</technologies> <launched>12 March 2010</launched> <description>Website for a small family owned B&B in South Africa.</description> </project> </projects>
We will do a class to easily handle the data like this
public class Project { public string Title { get; set; } public string Screenshot { get; set; } public string Uri { get; set; } public string Technologies { get; set; } public string Launched { get; set; } public string Description { get; set; } }
I will be using this is a web service where I use this code
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public List<Project> ProjectList() { XDocument dataDoc; // load the file - from cache if possible if (HttpContext.Current.Cache["dataDoc"] == null) { dataDoc = XDocument.Load(Server.MapPath("~/App_Data/Data.xml")); HttpContext.Current.Cache["dataDoc"] = dataDoc; // store it in the cache } else { dataDoc = (XDocument)HttpContext.Current.Cache["dataDoc"]; } //get the projects from the file var projectList = from project in dataDoc.Descendants("project") select new Project { Title = project.Attribute("title").Value, Screenshot = project.Element("screenshot").Value, Technologies = project.Element("technologies").Value, Launched = project.Element("launched").Value, Description = project.Element("description").Value, Uri = project.Element("uri").Value }; return projectList.ToList(); }
Note: This is NOT a best practices guide so do use common sense, it is only meant to get you started