IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Lire un XML plusieurs fois


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut Lire un XML plusieurs fois
    Bonjour,
    Je dispose d'un côté fichier xml que je parse avec un xmltextreader et de l'autre côté un fichier Excel.
    Je voudrais lire mon fichier xml tant que j'ai des lignes excel. Pour cela, j'utilise une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For i As Integer = 0 To NbLigne - 1
     While XMLReader.ReadToFollowing("ColExcel")
       'Je récupère le contenu des attributs de mon élément "ColExcel"
       ' Traitement ...
     End While
    Next
    Mon XML ressemble à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ColonnesExcel>
      <ColExcel name="Pvt initial" type="nvarchar(10)" local="TPR_PvtInitial" /> 
      <ColExcel name="Nom pvt initial" type="nvarchar(500)" local="TPR_NomPvtInitial" /> 
      </ColonnesExcel>
    Avec ma boucle, j'arrive à lire la 1ere ligne excel puis parcourir une fois mon xml et faire mes traitement, quand je passe à la suite des lignes excel il ne rentre plus dans ma boucle while. le reader reste bloqué à la fin du xml. Je ne trouve pas de méthode pour revenir au début de mon xml.
    Si quelqu'un sait comment faire, je vous remercie d'avance. Je suis à court d'idées.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Déjà, pourquoi utilises tu un XmlTextReader pour lire ton fichier Xml ? il y a une raison à cela ?
    En général, le reader n'est utilisé que si on a aucune idée du contenu; si c'est le cas, ça se justifie, mais au vu de la ligne que tu postes, j'ai comme un doute la dessus; si ce n'est pas le cas, pourquoi s'imposer cette complication inutile et ne pas utiliser le DOM ?

  3. #3
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Récupérer une liste par un XPath ou quoi ce ne serait pas plus simple? Tu récupères la listes des "CollonnesExcel\ColExcel" et tu en extrais les propriétés

  4. #4
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Je connais simplement la structure du xml mais je ne sais pas le nombre de lignes qu'il va y avoir ni le contenu de mes attributs. C'est un xml de mapping il n'y a pas de données dedans. Mes données sont dans le fichier excel.
    En cherchant sur le net, j'ai trouvé le xmltextreader pour lire un xml et je n'ai pas regerdé les onconvénients et avantages.

  5. #5
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Ditch Voir le message
    Récupérer une liste par un XPath ou quoi ce ne serait pas plus simple? Tu récupères la listes des "CollonnesExcel\ColExcel" et tu en extrais les propriétés
    on utilise comment le xpath?
    Avec le xmlTextReader, j'arrive à récupérer tout ce que je veux à la 1ere boucle. A la 2eme boucle je n'y arrive pas, car mon reader reste bloqué à la fin du xml et ne remonte pas!!!

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par poissonsoluble Voir le message
    Je connais simplement la structure du xml mais je ne sais pas le nombre de lignes qu'il va y avoir ni le contenu de mes attributs.
    Oui, mais tu connais la structure; donc aucune raison de se compliquer la vie avec une lecture séquentielle.

    Le XmlTextReader, à part pour faire un éditeur ou un viewer Xml, éventuellement un serializer spécifique, en général il n'y a pas lieu de l'utiliser.

    Utilise le DOM, ou le XPath, c'est plus simple plutôt que d'essayer de faire quelque chose avec un composant qui n'est pas prévu pour.

    Tape XML DOM ou XPath sur MSDN.

Discussions similaires

  1. Lire une ligne plusieurs fois
    Par xanix dans le forum Qt
    Réponses: 3
    Dernier message: 24/05/2010, 16h14
  2. [DOM] Analyse XML - plusieurs fois la même balise ?
    Par unfamous dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 03/09/2007, 01h09
  3. [C#] Ecrire un fichier XML en plusieurs fois
    Par schizette dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/08/2006, 15h54
  4. Uilisation de plusieurs fichiers xml à la fois
    Par elacsap78 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 10/01/2006, 16h00
  5. Réponses: 5
    Dernier message: 05/01/2006, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo