Как разобрать XML через Linq? - PullRequest
0 голосов
/ 18 мая 2011

Хорошо, если предположить, что какой-то XML похож на:

<Result>
 <Value>
  <Foo>1</Foo>
  <Bar>1</Bar>
 </Value>
 <OK>true</OK>
</Result>

И некоторые классы:

class ResultValue
{
  public int foo;
  public int bar;

  public ResultValue() {}
}

class Result
{
  public bool ok;
  public ResultValue value;

  public Result() {}
}

как мне создать / заполнить объект Result , включая его значение-член?

Я дошел до

from x in source.Elements()
where ((int)x.Element("Value").Element("Foo") == 1)
select new Result()
{
    ok = (bool) x.Element("OK"), // ok, I understand as far as this!
    // what goes here, to fill .value?
};

Буду очень признателен, если вы объясните не только какой код мне нужен, но и «почему», потому что синтаксис «немного» меня смущает :-P (на самом деле, если вы можете указать мне на приличный учебник по этому вопросу, это было бы очень полезно, я не могу найти ничего более простого, чем плоская структура).

1 Ответ

3 голосов
/ 18 мая 2011

Вы смотрели на xml сериализацию ?Может быть лучше для ваших нужд

...