1

Linq を使用して、ディレクトリ内の各 XML ファイルから単一の XML 属性を抽出し、その要素を C# リストに配置するにはどうすればよいですか。各ファイルを 1 つずつループする必要がありますか? 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 コンテンツを十分に解析することを意味します。

XDocumentXmlReader(つまり、LINQ to SQL) は、それぞれの場合に完全なドキュメントを解析してロードするため、インスタンスを直接使用する方がよい場合があります。これにはさらに多くの作業が必要になります。現在の場所を追跡しながら、適切なノードに到達するまで XML ノードを読み取る必要があります。

于 2010-05-11T21:28:32.763 に答える