Xmlreader et remise au début.. [Résolu]

Signaler
Messages postés
21
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

j'ai un petit soucis avec la lecture d'un xmlreader...

le code ressemble a ca :
XmlReader

r =
XmlReader.Create(
"test.xml");
for(int i=0;i<3;i++){
   r.ReadToFollowing("root");
   r.MoveToFirstAttribute();
    console.write(r.IsStartElement());

    xslt.Transform(r,
null, str);

    ......
}

Le premier passage dans le for fonctionne bien... mais a partir du deuxieme ca ne passe plus...
et a premiere vu cela provient du xmlreader que j'arrive pas a remettre au debut.
Quelqu'un saurait comment faire ?

merci

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

En tout cas côté navigation dans le XmlReader tu ne pourra pas retourner en arrière, cette classe permet une lecture uniquement vers l'avant, comme l'arbre DOM n'est pas déterminé (ce qui d'ailleurs te permet de traiter des fichiers de quelques millions de noeuds sans problème).

Si tu as besoin de naviguer dans ton document et que ton volume de données est raisonnable regarde du côté du XmlDocument, ça devrait te faciliter la vie.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Salut
Ca ne passe plus!? Ca veut dire quoi?? Y'a une exception?
(Es-tu sûr d'avoir plus d'un élément s'appelant "root" dans ton file ? (et ReadToFollowing return un booleen !))

Sinon, pour voir plus précisément d'où vient l'erreur, tu peux mettre en commentaire la ligne
// xslt.Transform(r, null, str);
parce que je pense que c'est celle-ci qui pose problème...

<hr size="2" />VC# forever