Click here to Skip to main content
15,890,282 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi Friends,

I am reading the XML file using Linq.
I have XML as below :

XML
<?xml version="1.0" encoding="utf-8"?>
<results xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="TCore TResultsSchema.xsd" xmlns="TCore">
<SMS>
<message>
<msgStatus>Read</msgStatus>
<msgcenterno>8613800100500</msgcenterno>
<number>8613810162499</number>
<dateTime>2011-11-22 15:45:54</dateTime>
<text>I'm going to purchase a BMW</text>
</message>
<deleted />
<message>
<msgStatus>Read</msgStatus>
<msgcenterno>8613800100500</msgcenterno>
<number>8613810162499</number>
<dateTime>2011-11-22 15:46:38</dateTime>
<text>What do want for me</text>
</message>
<deleted />


I want to fill all that messages into the Generic list. So i had done code like below.

C#
XDocument xmlDoc = XDocument.Load(new System.IO.StreamReader(strWorkingFolderPath + "\\physicalResults.xml"));

                List<SMS> lstsms = new List<SMS>();

                var childQuery = from child in xmlDoc.Element("results")
                                 .Element("SMS").Descendants("message")
                                 select child;

                foreach (XElement el in childQuery)
                {
                    SMS s = new SMS();
                    s.msgStatus = el.Attribute("msgStatus").Value;
                    s.msgcenterno = el.Attribute("msgcenterno").Value;
                    s.number = el.Attribute("number").Value;
                    s.dateTime = el.Attribute("dateTime").Value;
                    s.text = el.Attribute("text").Value;

                    lstsms.Add(s);
                }


I am getting error 'object reference not set to an instance of an object'.
Can any one please tell me where is the problem in this query?

Thank,
Viprat
Posted
Updated 17-Sep-12 18:32pm
v2

1 solution

Problem with your childQuery not formulated properly...
Read thru :
LINQ to XML[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900