Я экспериментирую с синтаксическим анализом XML-файла и получаю некоторый вывод в требуемом формате.Создание словаря из элементов XML через LINQ
Вот мой формат XML-файла.
<?xml version="1.0" encoding="utf-8" ?>
<Sample>
<Student name="Tom" id="0" batch="1">
<Performance>
<Previous id="1">Marks 1</Previous>
<Next mid="2">Marks 2</Next>
<Next mid="3">Marks 3</Next>
</Performance>
</Student>
<Student name="Jerry" id="1" batch="1">
<Previous mid="1">Marks 4</Previous>
<Next mid="2">Marks 5</Next>
<Next mid="3">Marks 6</Next>
<Next mid="4">Marks 12</Next>
</Student>
<Student name="Kate" id="5" batch="2">
<Previous mid="2">Marks 7</Previous>
<Previous mid="3">Marks 8</Previous>
<Next mid="4">Marks 6</Next>
</Student>
</Sample>
Выход Я пытаюсь получить это словарь из этого XML-файла:
0 - Collecion of (Previous and Next Marks)
1 - Collecion of (Previous and Next Marks)
5 - Collecion of (Previous and Next Marks)
где 0, 1, 5 являются идентификаторы студентов, и, соответственно, являются коллекции марок этого студента ,
Для этого я написал этот запрос, который не совсем дает мне выход:
UPDATE (добавлен Query)
XDocument xdoc = XDocument.Load("XMLfile1.xml");
var content = xdoc.Descendants("Student")
.Select(st => st.Descendants("Previous")
.Union(st.Descendants("Next"))
.Select(terms => new Marks { MarksId = terms.Attribute("mid").Value, MarksName = terms.Value })).ToDictionary<Marks, int>(key => key.StudentId) ;
Проблема:
1. Я не могу выбрать Attribute
ID
Студенческих узлов
2. Я не могу выбрать ключ для словаря, используя key => key.StudentID
, и это дает некоторые ошибки.
класса, который я использую здесь, чтобы разобрать:
class Marks
{
public int StudentID
{
get;
set;
}
public string MarksId
{
get;
set;
}
public string MarksName
{
get;
set;
}
Пожалуйста, покажите запрос, который у вас есть. –
@ DanielHilgarth: Ой! забыл нарисовать фрагмент. добавленной – user1240679