Chciałbym odzwierciedlają drzewo XML w moim obiektu strukturze, ale jestem zupełnie początkujący w LINQ do XMLPróbując analizować drzewo XML z Linq do XML (C#)
Mam XML o następującej strukturze:
<questions>
<question id="q1">
<number>1</number>
<text>some text11</text>
<answers>
<answer>
<v>some text11</v>
</answer>
<answer>
<v>some text11</v>
</answer>
</answers>
</question>
<question id="q2">
<number>2</number>
<text>some text2</text>
<answers>
<answer>
<v>some text22</v>
</answer>
<answer>
<v>some text22</v>
</answer>
</answers>
</question>
<question id="q3">
<number>3</number>
<text>some text3</text>
<answers>
<answer>
<v>some text33</v>
</answer>
<answer>
<v>some text33</v>
</answer>
<answer>
<v>some text33</v>
<addDescription>some text333</addDescription>
<textBox/>
</answer>
</answers>
</question>
</questions>
... i mam następujące klasy:
public class Question
{
public string text { get; set; }
public IList<Anwser> anwsers = new List<Anwser>();
}
public class Anwser
{
public string content { get; set; }
}
... i mam zbudować następujący (źle) Linq zapytanie:
List<Question> questions = (from xml in xdoc.Element("survey").Elements("questions").Elements("question")
select new Question()
{
text = xml.Element("text").Value,
anwsers =
(from anwsers in
xdoc.Element("survey").Elements("questions").Elements("question").Elements(
"answers").Elements(
"answer")
select new Anwser()
{
content = anwsers.Element("v").Value
}
).ToList()
}).ToList();
Oczywiście w ten sposób uzyskać za każdym razem wszystkie anwsers ze wszystkich pytań dodane do każdej listy. Jak rozwiązać ten problem? Mogę sobie wyobrazić, że jest to proste, ale nie mam pojęcia :)
Z góry dziękuję!
Czy użycie 'LINQ' do parsowania XML ma jakąkolwiek przewagę nad użyciem' XmlDocument'? – Meysam