如何使用 Linq 从目录中的每个 XML 文件中提取单个 XML 属性并将该元素放入 C# 列表中。我是否必须一个接一个地遍历每个文件?XML 文件非常大,所以我不想将整个文件加载到内存中。
谢谢,j
如何使用 Linq 从目录中的每个 XML 文件中提取单个 XML 属性并将该元素放入 C# 列表中。我是否必须一个接一个地遍历每个文件?XML 文件非常大,所以我不想将整个文件加载到内存中。
谢谢,j
除非文件很大(100 MB+),否则我无法拒绝这段代码的优雅:
var result = Directory.GetFiles(filePath)
.Select(path => XDocument.Load(path))
.Select(doc => doc.Root.Element("A").Attribute("B").Value)
.ToList();
我真的希望你的 XML 文件不是那么大......
您确实必须浏览每个文件,这意味着至少要解析每个文件的足够 XML 内容以获取所需的属性。
XDocument
(即 LINQ to SQL)将在每种情况下解析并加载完整的文档,因此您最好XmlReader
直接使用实例。这将需要更多的工作:您必须读取 XML 节点,直到找到正确的节点,并跟踪您所在的位置。