1

如何使用 Linq 从目录中的每个 XML 文件中提取单个 XML 属性并将该元素放入 C# 列表中。我是否必须一个接一个地遍历每个文件?XML 文件非常大,所以我不想将整个文件加载到内存中。

谢谢,j

4

2 回答 2

2

除非文件很大(100 MB+),否则我无法拒绝这段代码的优雅:

var result = Directory.GetFiles(filePath)
    .Select(path => XDocument.Load(path))
    .Select(doc => doc.Root.Element("A").Attribute("B").Value)
    .ToList();

我真的希望你的 XML 文件不是那么大......

于 2010-05-11T21:43:12.110 回答
1

您确实必须浏览每个文件,这意味着至少要解析每个文件的足够 XML 内容以获取所需的属性。

XDocument(即 LINQ to SQL)将在每种情况下解析并加载完整的文档,因此您最好XmlReader直接使用实例。这将需要更多的工作:您必须读取 XML 节点,直到找到正确的节点,并跟踪您所在的位置。

于 2010-05-11T21:28:32.763 回答