2010-05-11 8 views

Répondre

1

Vous ne devez passer par tous les fichiers, et cela signifie au moins l'analyse syntaxique assez du contenu XML de chaque fichier pour obtenir l'attribut requis. (C'est-à-dire LINQ to SQL) analysera et chargera le document complet dans chaque cas, de sorte que vous feriez mieux d'utiliser directement une instance XmlReader. Cela nécessitera plus de travail: vous devrez lire les nœuds XML jusqu'à ce que vous obteniez le bon, en gardant la trace de l'endroit où vous êtes.

+1

Oh mec, utiliser 'XmlReader' directement est une chose fastidieuse. – ChaosPandion

2

À moins que les fichiers sont énormes (100 Mo +) Je serais incapable de refuser l'élégance de ce code:

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

J'espère vraiment que vos fichiers XML ne sont pas si grand mais ...