Salut,
Selon vous, quelle est la méthode la plus rapide pour trouver 2 éléments dans un fichier XML de 80Mo (ce pourrait être plus):
- XmlTextReader avec une boucle
- XPath
- Autre...
Merci de votre aide.
A+
Version imprimable
Salut,
Selon vous, quelle est la méthode la plus rapide pour trouver 2 éléments dans un fichier XML de 80Mo (ce pourrait être plus):
- XmlTextReader avec une boucle
- XPath
- Autre...
Merci de votre aide.
A+
Avec XmlTextReader le document n'est pas chargé en mémoire, donc j'opterais pour cette solution à priori vu la taille des fichiers.
L'autre approche serait d'utiliser XPathDocument + XPathNavigator. Le document est chargé en mémoire mais en lecture seule (plus performant qu'un XmlDocument du fait de la lecture seule il me semble).
L'avantage de XPath c'est qu'il est plus simple de gérer la recherche, surtout si les critères peuvent changer.
A tester les deux méthodes pour voir laquelle te convient le mieux suivant les impératifs que tu peux avoir (vitesse du traitement, mémoire, ...).
Je suis d'accord sur l'utilisation d'un XmlReader ou d'un XPathNavigator. Je voulais simplement rectifier qu'ils sont plus performants du fait qu'ils ne chargent pas tout le document en mémoire, et non pas parce qu'ils sont en lecture seule.
My 2 cents.
:dehors:Citation:
Envoyé par MSDN
Salut,
A prioris, c'est une citation de http://msdn.microsoft.com/fr-fr/libr...nt(VS.80).aspx
Qui sous entend que tout le document sera chargé en mémoire. Donc ce pourrait ne pas être la bonne solution.Citation:
XPathDocument, classe
Fournit une représentation en mémoire, en lecture seule et rapide d'un document XML à l'aide du modèle de données XPath.
Il faut que je fasse des tests pour éclaircir tout ça.
Merci de votre aide.
A+
En fait, partout où on cherche sur internet la description qui revient pour le XPathDocument est "in-memory tree representation of an XML document" et d'ailleurs si on fouille dans la dll System.Xml.dll tout semble indiquer qu'à sa création il charge la totalité du fichier XML en mémoire avant d'en permettre l'accès. Bien sur il sera très rapide vu que tout est en mémoire. Donc pour un fichier de 80 Mo le XmlTextReader semble tout indiqué ...