如何查询这个XML文件

本文关键字:XML 文件 查询 何查询 | 更新日期: 2023-09-27 18:11:26

我很难创建查询。这是文件:

<Root>
<Summary>
    <Objective ID="1">
        <Exam Result="70" />
        <Exam Result="90" />
    </Objective>
    <Objective ID="2">
        <Exam Result="100" />
        <Exam Result="90" />
    </Objective>
</Summary>
</Root>

我需要得到List<双>>。第一个列表用于目标,最后一个用于存储每个结果。

如有疑问,请告诉我

如何查询这个XML文件

我猜你想:

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

或者如果目标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());

Lookup<int, double>:

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