2009-09-02 14 views
0

Je rejoins 3 fichiers journaux xml avec LINQ to XML par id, mais quand mes fichiers journaux deviennent trop gros, LINQ to XML ne fonctionne plus, donc je dois utiliser XmlReader. Mais maintenant, je me demande comment faire cela?Joindre des fichiers xml avec XmlReader

Dois-je faire défiler chaque document pour chaque ID ou y a-t-il une solution élégante plus simple?

Quelqu'un?

+0

Voir la question [this] (http://stackoverflow.com/questions/7070930/xmlreader-chaining) et la réponse à cette question. Son similaire mais pas le * même * problème – Kiran

Répondre

1

XMLReader a une affinité pour un fichier. Vous ne pouvez donc traiter qu'un fichier à la fois. Je suppose que dans votre scénario, il est possible de lancer 3 lecteurs et de charger les fichiers dans la mémoire. Un problème possible que je vois ici est comment vous "joindre" efficacement les 3 fichiers. Dites le premier identifiant dans le premier enregistrement est situé quelque part au milieu de la deuxième et à la fin de la troisième. Afin de les trouver, vous devrez traverser le xml à plusieurs reprises. Cela n'a pas de sens. Personnellement j'essaierais de charger l'information dans un db pour relier les fichiers là-bas. En tant que structures db, vous disposez de toute la puissance de l'indexation pour relier rapidement les données.