2013-03-04 3 views
5

Учитывая следующий XML:Выберите XElement где дочерний элемент имеет значение

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

Как я могу выбрать элемент «платформа» в качестве объекта XElement на основе дочернего элемента «ID», имеющее значение «1 «?

Я получил это далеко:

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

Но это ищет значение, которое должно быть в элементе «платформы», а не «ид».

ответ

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

Или с помощью XElement для int преобразования:

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

Спасибо за вашу помощь –

Смежные вопросы