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
Post a Comment