Lire un noeud précis d'un XML en VB .NET

looping_69 Messages postés 20 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 23 décembre 2008 - 25 sept. 2008 à 12:31
passylmat Messages postés 17 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 29 décembre 2008 - 26 sept. 2008 à 00:02
Bonjour,

J'ai un fichier xml du genre

 <serveur num="1">
  <srvname>toto</srvnname>
  <srvurl>http:/......</srvurl>
 </serveur>
 <serveur num="2">
  <srvname>titi</srvnname>
  <srvurl>http:/......</srvurl>
 </serveur>

Comment puis-je allé lire uniquement le noeud ou serveur num="2" ?
et récupéré les valeur qui vont bien.

Merci de votre aide.

Cdlt

2 réponses

cs_AshenShugar Messages postés 202 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 22 janvier 2009 1
25 sept. 2008 à 14:15
Bonjour,

Là, comme ça, je ne vois que 2 possibilités : tu boucles ou tu utilises Linq.

Linq a vraiment l'air pas mal pour faire celà. Je te conseille la lecture de cet article (sur du C# mais c'est du pareil au même) :
http://blog.blocks4.net/post/2007/08/Querying-XML-documents-with-LINQ-to-XML.aspx

Et pour ton cas précis, le plus approprié semble être le deuxième exemple.

Cordialement.
0
passylmat Messages postés 17 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 29 décembre 2008
26 sept. 2008 à 00:02
J'ai eu un peu le meme problème que toi dans un projet et je te conseille fortement cette source qui je pense va grandement t'aider.
Néanmoins, si tu compte lire un assez grand fichier xml, je te conseille de modifier le code donner dans la source et de ne pas ouvrir/fermer le fichier xml a chaque action, car le gain de performance est vraiment énorme.
Par exemple, pour un fichier de 1300 lignes (et oui ça va vraiment vite les lignes en xml lol), la lecture est passée de 16 secondes à moins d'une demi seconde, et pour l'écriture c'est encore plus flagrant, j'ai du passer d'environ 1min pour écrire 1300 lignes a quelques secondes.
En espérant que ça puisse t'aider.
Cordialement

Passylmat
0
Rejoignez-nous