Dies hängt von der Größe dieser Dateien ab und davon, wie komplex die Daten tatsächlich sind. Soweit ich die Frage verstehe, ist es bei dieser Art von XML-Daten am besten, eine XPath-Abfrage zu verwenden und alle Dateien zu durchsuchen, wobei die Dateien möglicherweise zwischengespeichert werden, um den Parsing-Overhead zu verringern.
Werfen Sie einen Blick darauf: XPathDocument, XmlDocument-Klassen und XPath-Abfragen
http://support.microsoft.com/kb/317069
So etwas sollte möglich sein (wurde aber nicht getestet):
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
// if required, add your namespace prefixes here to nsmgr
XPathExpression expression = XPathExpression.Compile("//element[@date='20090101']", nsmgr); // your query as XPath
foreach (string fileName in Directory.GetFiles("PathToXmlFiles", "*.xml")) {
XPathDocument doc;
using (XmlTextReader reader = new XmlTextReader(fileName, nsmgr.NameTable)) {
doc = new XPathDocument(reader);
}
if (doc.CreateNavigator().SelectSingleNode(expression) != null) {
// matching document found
}
}
Hinweis: Sie können ein XPathDocument zwar auch direkt aus einem URI/Pfad laden, aber die Verwendung des Readers stellt sicher, dass dieselbe Nametabelle verwendet wird, die auch zum Kompilieren der XPath-Abfrage verwendet wurde. Wenn eine andere Nametabelle verwendet wird, erhalten Sie keine Ergebnisse aus der Abfrage.