2013-03-04 23 views
5

Với XML sau:Chọn XElement nơi phần tử con có giá trị

<platforms> 
    <platform> 
    <id>1</id> 
    <price>2.99</price> 
    </platform> 
</platforms> 

Làm thế nào tôi có thể chọn các yếu tố "nền tảng" như một đối tượng XElement dựa trên yếu tố con "id" có giá trị là "1 "?

Tôi đã nhận được điều này cho đến nay:

XDocument xPlatformXml = new XDocument(); 
XElement xel = xPlatformXml.Element("platforms").Elements("platform").Where(x => x.Value == "1").SingleOrDefault(); 

Nhưng điều này đang tìm kiếm các giá trị là yếu tố trong "nền tảng" hơn là "id".

Trả lời

13
XDocument xPlatformXml = new XDocument(); 
XElement xel = xPlatformXml.Element("platforms") 
          .Elements("platform") 
          .Where(x => x.Element("id").Value == "1") 
          .SingleOrDefault(); 

Hoặc sử dụng XElement để int chuyển đổi:

XDocument xPlatformXml = new XDocument(); 
XElement xel = xPlatformXml.Element("platforms") 
          .Elements("platform") 
          .Where(x => (int)x.Element("id") == 1) 
          .SingleOrDefault(); 
+0

Nhờ sự giúp đỡ của bạn –