c# - LINQ to XML query returning wrong data -


i have xml

<?xml version="1.0" encoding="utf-8" ?> <departments>  <department>   <id>001</id>   <section>     <sectionid>001001</sectionid>     <room>       <roomid>001001001</roomid>       <owner>guest1</owner>     </room>     <room>       <roomid>001001002</roomid>       <owner>guest11</owner>     </room>   </section>   <section>     <sectionid>001002</sectionid>     <room>       <roomid>001002001</roomid>       <owner>guest2</owner>     </room>  </section> </department> </departments>   

and code using linq xml

var xdoc = xdocument.load(inputurl);  var sections = el in xdoc.descendants("department")                        el.element("id").value.equals("001")                        select el.element("section");  var rooms = el in sections                el.element("sectionid").value.equals("001001")                select el.element("room");  var roomslist = (from el in rooms             select new room             {                 roomid = (string)el.element("roomid"),                 owner = (string)el.element("owner")             }).tolist(); 

my problem 1 room in list,but should two.please advice if right way of using linq xml,i new linq.

just show there many ways skin cat:

var xdoc = xdocument.load(@"c:\test\test.xml");  var depts = e in xdoc.descendants("department")             e.element("id").value.equals("001")             select e;  var sections = e in depts.descendants("section")             e.element("sectionid").value.equals("001001")             select e;  var rooms = (from e in sections.descendants("room")             select new //room              {                 id = (string)e.element("roomid"),                 owner = (string)e.element("owner")             }).tolist(); 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -