如何查询此XML文件?

Dar*_*arf 1 c# xml linq linq-to-xml

我很难尝试创建查询.这是文件:

<Root>
<Summary>
    <Objective ID="1">
        <Exam Result="70" />
        <Exam Result="90" />
    </Objective>
    <Objective ID="2">
        <Exam Result="100" />
        <Exam Result="90" />
    </Objective>
</Summary>
</Root>
Run Code Online (Sandbox Code Playgroud)

我需要获取List <List <double >>中的值.第一个列表是否为目标,最后一个是存储每个结果.

有任何疑问,请告诉我

Jon*_*eet 6

我怀疑你想要:

var results = doc.Descendants("Objective")
                 .Select(x => x.Elements("Exam")
                               .Select(exam => (double) exam.Attribute("Result"))
                               .ToList())
                 .ToList();
Run Code Online (Sandbox Code Playgroud)

或者,如果目标ID很重要,您可能需要考虑Dictionary<int, List<double>>:

var results = doc.Descendants("Objective")
                 .ToDictionary(x => (int) x.Attribute("ID"),
                               x => x.Elements("Exam")
                                     .Select(y => (double) y.Attribute("Result"))
                                     .ToList());
Run Code Online (Sandbox Code Playgroud)

或者Lookup<int, double>:

var results = doc.Descendants("Exam")
                 .ToLookup(x => (int) x.Parent.Attribute("ID"),
                           x => x.Select(y => (double) y.Attribute("Result"));
Run Code Online (Sandbox Code Playgroud)

  • 这么想,但是不想编辑Master的帖子. (2认同)