Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用Linq为目录中的每个XML文件提取单个XML属性_C#_Linq_Linq To Xml_Data Extraction - Fatal编程技术网

C#使用Linq为目录中的每个XML文件提取单个XML属性

C#使用Linq为目录中的每个XML文件提取单个XML属性,c#,linq,linq-to-xml,data-extraction,C#,Linq,Linq To Xml,Data Extraction,如何使用Linq从目录中的每个XML文件中提取单个XML属性,并将该元素放入C#列表中。我必须逐个循环浏览每个文件吗?XML文件非常大,因此我希望在不将整个文件加载到内存的情况下执行此操作 谢谢, j您必须遍历每个文件,这意味着至少要解析每个文件中足够多的XML内容,以获得所需的属性 XDocument(即LINQ to SQL)将在每种情况下解析并加载完整的文档,因此您最好直接使用XmlReader实例。这将需要更多的工作:您必须读取XML节点,直到找到正确的节点,并跟踪您所在的位置。除非文件

如何使用Linq从目录中的每个XML文件中提取单个XML属性,并将该元素放入C#列表中。我必须逐个循环浏览每个文件吗?XML文件非常大,因此我希望在不将整个文件加载到内存的情况下执行此操作

谢谢,
j

您必须遍历每个文件,这意味着至少要解析每个文件中足够多的XML内容,以获得所需的属性


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

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

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

我真的希望您的XML文件没有那么大…

这些文件有多大?