我有這樣的XML的LINQ to 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>
,這是使用LINQ to XML我的代碼
var xDoc = XDocument.Load(inputUrl);
var sections = from el in xDoc.Descendants("Department")
where el.Element("id").Value.Equals("001")
select el.Element("Section");
var rooms = from el in sections
where 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();
我的問題是我只在列表獲得1間房間,但我應該得到兩個。請同樣建議,如果這是使用LINQ to xml的正確方式,那麼對於LINQ我是相當新的。
如果我使用的元素(「房間」)我得到這個錯誤錯誤\t System.Collections.Generic.IEnumerable <的System.Xml。 Linq.XElement>'不包含'Element'的定義,並且沒有可以找到接受類型'System.Collections.Generic.IEnumerable'的第一個參數的擴展方法'Element'你在這條線上缺少使用指令或程序集引用?)roomID =(string)el.Element(「RoomID」), –
TRS
這不是唯一的問題。他也只從'部門'中獲得第一個「部分」。 – MarcinJuraszek