我正在尝试解析 XML 文件,并以所需格式获得一些输出。
这是我的 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 是学生的 ID,对应的是该学生的分数集合。
为此,我编写了这个查询,它并没有给我输出:
UPDATE (Query added)
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;
        }