Skip to main content

XML data access through Linq..


Following are the setp to read data from XML file using linq query

1st : Add following name spaces by using

using System.Xml;
using System.Xml.Linq;

2nd : Create XDocument object and load XML file

XDocument objXDocument = XDocument.Load(Server.MapPath("~/App_Data/XYZ.xml"));

3rd : Write following linq query to read data from XDcument object

var q = from c in loaded.Descendants("Iteams")
                    select c.Elements("Item");

You can also specify where condition like following

var q = from c in loaded.Descendants("Items")
                    where c.Attribute("id").Value = "id1"
                    select c.Elements("Item");

4th : Check for null and then convert var object 'q' to List

List<XElement> objElem = q.ToList()[0].ToList();


Following is the structuer of the XML file used for this code

<? xml version="1.0" encoding="utf-8" ?>
<Items>
  <Item id="id1">
  ...
  Item>
  <Item id="id2">
  ...
  Item>
  <Item id="id3">
  ...
  Item>
Items>

Comments

Popular posts from this blog

LINQ union with group by

In my recent development activity with LINQ query, I need to get the some of user points from tow different tables where user's points are based on some activities. There are many users who are into one table but not in another table and some are in both table. For example tables having data like this Table 1 UserID   Points 1           10 2           20 Table 2 UserID    Points 2           20 3           30 Result should be UserID    Points 1           10 2           40 3           30 I try to get this result with LINQ query using joins and group by samples from the web. I had googling to get something useful but dont get any success. So I try with new logic and here it is, I think it will help full to other also. Example Item class to use public cla...

Message Panel

This in post show you how effectively you can show you messages and error regarding the user events using the Message Panel control. following are the step by step description of how to create and use Message panel. Create Message panel In your application add folder App_Code. To do that right clicking on Web project select Add Asp.net folder >> App_Code Add one class file name MessagePanel.cs and copy pest following code into it. using System; using System.Web.UI; using System.Web.UI.WebControls; namespace Controls {    // TODO: add clear link (display: none;) plus requried js    [ ToolboxData ( "<{0}:MessagePanel runat=\"server">" )]     public class MessagePanel : Panel , INamingContainer     {         private const string VSKEY_MESSAGE = "Message" ;         private const string VSKEY_ERROR = "Error" ;      ...

SqlConnection from ObjectContext.Connection

Following is C# code to get the  SqlConnection from ObjectContext.Connection . This is usefully to run dynamically created query using ADO.NET using connection string specified into the EDMX ObjectContext object. C# Code Example : using ( EntityContext context = new EntityContext ()) { EntityConnection ec = ( EntityConnection )context.Connection; SqlConnection sc = ( SqlConnection )ec.StoreConnection; SqlDataAdapter da = new SqlDataAdapter (strQuery, sc); DataSet ds = new DataSet (); da.Fill(ds); return ds.Tables[0]; }